Typecho在文章中间插入广告的正确姿势

知识分享 0 3167

虽然羽度非凡的博客流量有限,但闲着也是闲着,挂上几条联盟广告,看起来让各个页面更丰满一些吧!

 

Typecho博客程序主打的是简洁,更多功能的实现可以自己编辑代码实现,不过一些常用的功能也已经有好心人整理出来了,比如在每篇文章中自动插入广告的代码:

function themeInit($archive) {

   // 判断是否是文章,如果是就插入广告

   $ad_code = '<div>这是你的广告</div>';

   if ($archive->is('single')) {

        $archive->content = prefix_insert_after_paragraph( $ad_code, 2, $archive->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 );

}

这段代码中的关键信息基本已经标注出来,但如果直接将这段代码插入到functions.php文件中的话,可能会遇到广告无法显示,甚至报错的问题,原因很简单,就是有些Typecho第三方模板的functions.php文件中已经有了

function themeInit($archive)

这个函数,因此再将代码完整插入的话无法正常读取运行,所以想要在文章中间插入广告的话,可以现在functions.php文件中查找是否有

function themeInit($archive)

这个函数,如果有的话,将函数后面的

   // 判断是否是文章,如果是就插入广告

   $ad_code = '<div>这是你的广告</div>';

   if ($archive->is('single')) {

        $archive->content = prefix_insert_after_paragraph( $ad_code, 2, $archive->content );;

    }

直接添加到

function themeInit($archive)

函数后面即可,比如我的模板functions.php文件中就有这个函数,再添加广告代码便成了这样:

Typecho在文章中间插入广告的正确姿势  第1张

下面的功能代码可以直接完整复制插入到functions.php文件的最后,这段代码的主要作用是控制广告在文章中的具体位置。

 

默认情况下,广告会插入到文章的第2段后面,想要将广告设置在其他位置,将

$archive->content = prefix_insert_after_paragraph( $ad_code, 2, $archive->content );;

参数中的2更改为自己想要设置的段落数即可。

相关推荐:

网友留言:

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
验证码