代码实现WordPress 在文章内容的段落中插入广告google adsense

谷歌广告效果

有很多人都希望wordpress能在文章的内容中插入广告,而且google adsense也推出了文章内嵌广告,能提升用户阅读的体验度,这里有两种方法在wordpress文章的内容中插入广告。一个是用插件。不过效果未必理想,另外一种就是用代码插入。

代码实现的方式很简单,只要在下面functions.php插入下面的代码即可实现(记得将:你的广告代码替换掉)

随机在文章段落中插入 google adsense

add_filter( 'the_content', 'prefix_insert_post_ads' );
function prefix_insert_post_ads($content){
    $pattern = "/<p>.*?<\/p>/";
    $paragraph_count = preg_match_all($pattern,$content); //计算文章的段落数量
    if($paragraph_count >= 8 && is_single()){//如果文章的段落数量少于8段,则不会插入文章段落广告
    $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 );
}

固定在文章段落中插入 google adsense

该代码意思为: 在文章内容页面的第5个段落下面加入广告位。如果我们希望在其他段落下面只需修改对应的数字即可。

add_filter( 'the_content', 'prefix_insert_post_ads' );
function prefix_insert_post_ads( $content ) {
	$ad_code = '<div>广告代码</div>';
	if ( is_single() && ! is_admin() ) {
	// 下面一行数字5代表段落
	return prefix_insert_after_paragraph( $ad_code, 5, $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 );
}

2 thoughts on “代码实现WordPress 在文章内容的段落中插入广告google adsense

发表评论

电子邮件地址不会被公开。 必填项已用*标注