通过WordPress钩子动态判断文章段落数量实现自动投放广告

Ourboke
Ourboke
Ourboke
16368
文章
148
评论
2022年1月7日14:58:23

Google AdSense 是Google公司推出的一款面向广大站长的免费产品,通过在申请和绑定Adsense系统,获取广告代码并添加到网站,可以在上面展示广告,让站长实现创收。

Google Adsense有个非常厉害的功能,自动广告,只需要加入一段js,谷歌就会使用机器分析你的网站结构,然后给你自动放广告。

自动广告虽然好,不过因为它还不够智能,经常会出现打乱网站结构的情况发生,而且很多时候自动广告不一定会在你的文章中投放广告。

今天介绍一种通过WordPress钩子,动态判断文章段落数量来实现自动投放广告的方法。

(此方法可以用于其他类型广告的投放)

创建文章中广告单元

首先在Google AdSense 中创建文章内嵌广告单元,建议对每一个创建的广告单元都对其重命名来进行标记方便我们查看相应的数据报告。

插入代码到function.php

将如下代码内容插入到当前主题目录下的function.php文件内

add_filter( 'the_content', 'prefix_insert_post_ads' );
function prefix_insert_post_ads($content){
$pattern = '/<p>.*?<\/p>/';
preg_match_all($pattern,$content,$jg); //计算文章的段落数量
$paragraph_count=count($jg[0]);
if($paragraph_count >= 4 && is_single()){//如果文章的段落数量少于4段,则不会插入文章段落广告
$paragraph_count -=2;
$insert_paragraph=rand(3,$paragraph_count);
$ad_code = '
<div>广告代码</div>
';
return prefix_insert_after_paragraph( $ad_code, $insert_paragraph, $content );
}
return $content;
}
// 插入广告所需的功能代码
function prefix_insert_after_paragraph( $insertion, $paragraph_id, $content ) {
         $closing_p = '</p>';
    $paragraphs = explode( $closing_p, $content );
    foreach ($paragraphs as $index => $paragraph) {
        if ( trim( $paragraph ) ) {
            $paragraphs[$index] .= $closing_p;
        }
        if ( $paragraph_id == $index + 1 ) {
            $paragraphs[$index] .= $insertion;
        }
    }
    return implode( '', $paragraphs );
}

代码会对文章长度的判断,以此作为依据来决定是否展示广告。

只需注意修改以下代码:

if($paragraph_count >= 4 && is_single()){//如果文章的段落数量少于4段,则不会插入文章段落广告

默认是按4个段落来判断是否插入广告,这个地方根据自己的实际需要进行参数的修改

再来一个代码,删除了一个参数,效果一样:

add_filter( 'the_content', 'prefix_insert_post_ads' );
function prefix_insert_post_ads($content){
   $pattern = "/.*?<\/p>/";
   $paragraph_count = preg_match_all($pattern,$content); //计算文章的段落数量   
   if($paragraph_count >= 4 && is_single()){//如果文章的段落数量少于4段,则不会插入文章段落广告   
   $paragraph_count -=2;
   $insert_paragraph=rand(3,$paragraph_count);
   $ad_code = '
<div>广告代码</div>
';
   return prefix_insert_after_paragraph( $ad_code, $insert_paragraph, $content );
}
   return $content;
}
// 插入广告所需的功能代码   
function prefix_insert_after_paragraph( $insertion, $paragraph_id, $content ) {
    $closing_p = '</p>';
    $paragraphs = explode( $closing_p, $content );
    foreach ($paragraphs as $index => $paragraph) {
    if ( trim( $paragraph ) ) {
    $paragraphs[$index] .= $closing_p;
    }
    if ( $paragraph_id == $index + 1 ) {
    $paragraphs[$index] .= $insertion;
    }
  }
  return implode( '', $paragraphs );
}
WordPress 判断访客浏览器类型方法 WordPress

WordPress 判断访客浏览器类型方法

现在很多主题对IE支持都不是很好,其实我们可以通过判断访问者用浏览器,然后提醒用户升级浏览器。 今天分享一下WordPress 判断访客浏览器类型方法。比如在主题模板适当位置添加: &...
让WordPress页面支持添加分类及标签 WordPress

让WordPress页面支持添加分类及标签

默认WordPress页面不支持选择分类和添加标签,可以通过下面的方法为页面添加分类及标签。 将下面代码添加到当前主题函数模板 functions.php 中: functio...
wordpress如何根据slug获取分类下的文章 WordPress

wordpress如何根据slug获取分类下的文章

wordpress的强大之处在于丰富的函数,封装了无数钩子、函数,可以在开发过程中使用。但有的东西始终要自己编写,我在搜索引擎翻了个底朝天,也没有找到根据分类slug获取分类下文章的博文。于是就自己写...