有些我们可能考虑到推广内容或者广告客户的需要,希望在原来所有的WordPress网站某个断后后面添加内容模块的,这里当然可以使用插件实现的,但是如果不用插件是否可以实现呢?
废话不多说,直接上代码。
// 在文章内容插入代码 - http://www.zhujipingjia.com/wpinsert-post.html
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 >= 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 );
}
默认是第二段后面,我们有需要也可以修改。当然也希望文章稍微长一些才添加,比如超过四段。
是不是很帅?比如我们可以插入随机的广告或者是插入一些推广的引导CPS。
评论