在WordPress中优化谷歌(AdSense)广告联盟

自从前段时间谷歌广告联盟通过以后,也算是比较关注的了

今天来说一下优化吧,在说优化之前,先说一下WordPress常用的页面判断

很多时候我们需要将某些内容在指定的页面中显示,比如将谷歌自动广告设置为不在首页显示,这些都可以通过修改代码来达到效果

下面为常用的页面判断语句

  • is_home() 主页
  • is_single() 文章页
  • is_page() 页面
  • is_category() 文章分类页
  • is_tag() 文章标签页
  • is_archive() 归档页
  • is_404() 404页
  • is_search() 搜索结果页
  • is_feed() 订阅页

还有语法是这样的:|| 表示或者,&& 表示和,! 表示非

下面我们就来处理谷歌的广告显示,我选择了自动广告和一个单元广告

自动广告处理

先说自动广告,简单易处理,我不需要在首页显示太多广告,影响美观

<?php
if (is_single()) {
    echo'<script>
     (adsbygoogle = window.adsbygoogle || []).push({
          google_ad_client: "ca-pub-6283374584269480",
          enable_page_level_ads: true
     });
</script>';
}
?>

前两天的时候我是判断的文章页,但是单独的页面就没有了,我需要啊(手动滑稽),所以做如下更改

<?php
if (!is_home() || !is_front_page()) {
    echo'<script>
     (adsbygoogle = window.adsbygoogle || []).push({
          google_ad_client: "ca-pub-6283374584269480",
          enable_page_level_ads: true
     });
</script>';
}
?>

我们可以用is_home()来判断是不是WordPress的首页,但是有一点需要注意,当你的首页不是默认的index.php的时候,比如是在后台指定了一个页面,这种情况下is_home()也会失效

也就是说这种情况下就不能用is_home()来判断了,而是要用is_front_page()来进行判断

is_front_page()是判断当前页是不是指定的首页

单元广告处理

然后开始处理单元广告,虽说是一个单元广告,但是我用在了两个地方,一个是索引页第一篇文章下方,一个是评论上方

控制台会报错,大概意思是用了两个adsbygoogle push,重复请求了

错误信息如下:

Uncaught 
G {message: "adsbygoogle.push() error: All ins elements in the … with class=adsbygoogle already have ads in them.", name: "TagError", stack: "TagError: adsbygoogle.push() error: All ins elemen…esyndication.com/pagead/js/adsbygoogle.js:1:74657"}

仔细看了一下,留言簿页面的控制台是正常的,有几个页面没有开启评论功能,所以就报错了

尝试一下是不是因为没有开启评论造成的,然后找了一下WordPress的函数,comments_open()可以判断是否开启评论

<?php
if ( comments_open() ) {
    echo'<script>(adsbygoogle = window.adsbygoogle || []).push({});</script>';
}
?>

结果还真的正常不报错了,哈哈

我将谷歌广告和熊掌号的信息都移到了页面底部,所以你也可以将这些更改加载footer.php文件中的合适位置,当然你加在header.php中也没有问题

6 条评论

发表评论

*