现在你已经了解了什么是动作,已经如何使用它们来添加新内容、移动和删除现有内容,可能你还会用到一个更有用的技巧。那就是:
添加重复内容
当你想是在文章顶部和底部添加一个分享按钮,或者在多个元素周围添加一些额外的东西,或在多个位置插入广告,你都要学会如何对代码进行重复。有人可能会通过创建一对额外的动作/函数对来实现这一点,但实际上并不需要这样,事实上,你可以使用一些条件语句,并根据要执行的位置来改变相似的代码,这样就可以只写一个函数但可以在多个地方执行。
在第一个示例中,我演示了在文章内容的顶部和底部添加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支持的非常好,正好也可以一般翻译一遍实践了,看看有多少可以插的“体位”吧?