Typecho中内置了强大的is函数,用于判断“我在哪里?”。这就可以让我们在投放谷歌AdSense的【自动广告】的时候更加的灵活,在投放谷歌AdSense广告的站长们应该都知道【自动广告】会根据网页布局自动选择广告尺寸和位置来投放,而在对站点首页的“智能化”处理上总是差强人意,所以为了保证【自动广告】的投放效果和用户体验,我们就可以借助is函数来指定【自动广告】只投放在文章页面。

20160527191319.jpg

is函数可以用于判断index/archive/category/tag/date/single/page/post/attachment等,具体用法见下文描述。注意哈,这些页面是有相互包含的关系的,具体在使用过程中要多尝试下。

$this->is('index')

  • 从字面可见,判断当前页面是否是首页

$this->is('archive')

  • 判断当前页面是否是归档页,譬如主页,分类文章页,标签文章页,日期归档文章页

$this->is('category'),或者$this->is('category','some_slug')

  • 判断当前页面是否为分类文章页,如果加第二个参数slug,则进一步判断是否为特定的分类,譬如默认分类的slug是“default”

$this->is('tag')或者$this->is('tag','some_slug')

  • 判断当前页面是否是标签文章页,如果加第二个参数slug,则进一步精确判断,原理同category

$this->is('date')或者$this->is('date','some_range'),其中some_rage可以是year/month/day

  • 判断当前页面是否是日期归档页,如果指定第二个参数,则进一步精确判断。

$this->is('single')

  • 用于判断是否是内容页面,所谓内容页面,包括文章页、独立页面和附件显示页

$this->is('post')或者$this->is('post',$post_id)

  • 用于判断是否是内容页,加第二个参数则进行精确判断

$this->is('page')或者$this->is('page','some_slug')

  • 用于判断当前页面是否为独立页面,加第二个参数表示精确判断,譬如$this->is('page','about')则表示判断当前页面是否是about页面

$this->is('attachment')或者$this->is('attachment',$attachment_id)

  • 同上,用于判断附件页面。

综上所述,我们的【自动广告】代码就可以如下这样投放(在当前主题目录下的header.php里):

<?php if ($this->is('post')): //如果是文章则允许载入“自动广告”代码 ?>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({
          google_ad_client: "ca-pub-6265969660632907",
          enable_page_level_ads: true
     });
</script>
<?php endif; ?>

可以看到这里用到的is函数是$this->is('post'),这个是仅仅在“文章”页面,如果你需要包括独立页面可以使用$this->is('single'),具体大家看上面的函数简介就能看出区别了。

如果你的服务器PHP开启了缓存(OPCache),那么最好重启一下php-fpm进程让代码执行以下。慢慢体验【自动广告】的强大吧!

最后修改:2018 年 12 月 21 日
如果觉得我的文章对你有用,请随意赞赏