专栏首页一丘一壑Genesis框架从入门到精通(5):框架的内置动作(又续)

Genesis框架从入门到精通(5):框架的内置动作(又续)

现在你已经了解了什么是动作,已经如何使用它们来添加新内容、移动和删除现有内容,可能你还会用到一个更有用的技巧。那就是:

添加重复内容

当你想是在文章顶部和底部添加一个分享按钮,或者在多个元素周围添加一些额外的东西,或在多个位置插入广告,你都要学会如何对代码进行重复。有人可能会通过创建一对额外的动作/函数对来实现这一点,但实际上并不需要这样,事实上,你可以使用一些条件语句,并根据要执行的位置来改变相似的代码,这样就可以只写一个函数但可以在多个地方执行。

在第一个示例中,我演示了在文章内容的顶部和底部添加google adsense。

add_action( 'genesis_before_post_content', 'child_content_conditional_adsense', 15);
add_action( 'genesis_after_post_content', 'child_content_conditional_adsense', 5);
/** inserts an adsense ad above and below the content */
function child_content_adsense() { ?>

    <div class="adsense">
        <!--insert adsense code-->
    </div><!-- end .adsense -->

<?php }

现在,.entry-content div之前和之后的位置将会有两段一模一样的代码。

如果我想对这两段内容进行区别对待,分开处理,那么我需要明确知道我要使用哪个钩子(即是在文章之前还是之后)。这就是条件处理,我将在另一个教程中更详细地解释。用下面这段代码即可以有条件的处理我们需要的东西。

add_action( 'genesis_before_post_content', 'child_content_conditional_adsense', 15);
add_action( 'genesis_after_post_content', 'child_content_conditional_adsense', 5);
/** inserts an adsense ad above and below the content with a conditional class. */
function child_content_conditional_adsense() { ?>

    <div class="adsense <?php echo 'genesis_before_post_content' == current_filter() ? 'before' : 'after'; ?>">
        <!--insert adsense code-->
    </div><!-- end .adsense -->

<?php }

虽然这看起来不像传统的条件语句,但它是一种非常高效的给变量赋值值或打印内容的方式。第一部分说,它要做的是打印,下一部分,一直到 “?”之前是它判断的条件。“?”的意思是,如果条件为真,就打印’before’,在这个例子里,current_filter()的返回值是“genesis_before_post_content”时条件为真,而“”的意思是条件为假时要打印的内容,也就是“after”。现在同一段内容可以根据不同条件设置不同样式,“adsense before”和“adsense after”,随便你怎么显示都可以。


原文地址

Genesis Explained Actions Bonus • DESIGNS BY NICK THE GEEK

I was looking through the posts on actions and realized that there was one important tip I left out. If you haven’t read up on the actions already, you should probably start at the beginning. To make it easier I have tagged all of the articles with an “Actions” tag, so check out the Actions archive.

designsbynickthegeek.com


译后记

这篇文章比较短,正好今天也在看Google adsense方面的东西,打算去申请一个放在我的博客上,说到广告,也有点小小的感想。

几年前吧,我对一切太过于商业化的东西都还挺瞧不上挺抵触的,比如什么营销啦、培训啦、运营啦、SEO啦,网赚啦之类的,对网上这些方面的内容和从事这行的人啊公司啊觉得都挺“没啥技术含量”,只觉得技术工作才是牛 B的最有乐趣最有挑战性的,对技术之外的东西都不感冒,这可能也是一些技术人的通病吧。

程序员圈子更崇尚的是开源啊、免费啊、自由啊这些很符合理想主义的东西,但是理想很丰满现实很残酷,很多时候商业化的东西是无法绕过的,广告、推广、盈利才是最现实的最迫切的最难的,就算是对一个再小的网站来说,也是有成本的,域名、服务器、带宽,甚至开发的人力成本,房租水电,时间成本,都是钱啊。。。谁也不可能学Wikipedia那样哗哗哗的流量就白白扔了,每年苦哈哈的募捐就为坚持一份理想,再说了,能有几个Wikipedia?

靠着广告,成就了多少巨无霸型的互联网企业,Google、facebook都不用说了,国外还有太多就靠着Google adsense, AMAZON推广链接,各种联盟赚的盘满钵满的个人博客,还有国内的各种自媒体,“两微一抖”,也都是靠着接广告活的挺滋润,说不眼红,那是假的。。。。以前傻不拉唧的觉得在自己网站上加点Google adsense之类的都是挺掉价的事,现在想想也真是够可笑的,哪里来的自信自觉一份清高??

以前我对网络上的乱七八糟的广告都是很反感的,chrome上的uBlock插件是绝对离不开的,自动屏蔽,手动屏蔽,各种屏蔽,统统过滤,几乎都不怎么能看到广告了。现在随着经历多了,也可能是老了,渐渐心态也平和了,偶尔看到不错的网站,也会把它加入uBlock的白名单,抱着学习的心态看看它会有啥广告出来,看人家是怎么插的?,所以也在现在这个博客上插了几个广告试试,虽然也不可能因此就发家致富走上人生巅峰了,但苍蝇腿儿也是肉嘛

Google adsense是个大学问啊,打算好好研究研究,好消息是Genesis对adsense支持的非常好,正好也可以一般翻译一遍实践了,看看有多少可以插的“体位”吧?

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Genesis框架从入门到精通(10): 样式函数

    Genesis Explained Formatting Functions

    丘壑
  • 史上最详细的WordPress的自定义文章类型指南(1)

    最近我发现有很多从google过来的奇怪的关键字,比如best screenshot app 这种,可能是我的这个域名bestscreenshot.com 当时...

    丘壑
  • Genesis框架从入门到精通(12): 配置项函数

    Genesis Explained Option Functions

    丘壑
  • Gazebo 简介

    These three steps will run Gazebo with a default world.

    用户1908973
  • A big Discover of Eclipse

    hi , all kids, i found a very good article for how to use C# under Eclipse.

    田春峰-JCJC错别字检测
  • Tomcat 9访问 Host Manager

    由于机器环境是win7 旗舰版 64位,所以选择下载64-bit windows .zip。

    拓荒者
  • 如何修改SAP UI5本地库文件

    You meet with issues when you send odata request to backend:

    Jerry Wang
  • How to make local changes on your ui5 library file in Eclipse

    You meet with issues when you send odata request to backend:

    Jerry Wang
  • PCIE AER

    PCI Express error signaling can occur on the PCI Express link itself or on behal...

    PedroQin
  • HDU 1027 组合数学

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Ot...

    csxiaoyao

扫码关注云+社区

领取腾讯云代金券