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

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文件中就有这个函数,再添加广告代码便成了这样:

添加广告代码

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

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

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

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