分类 Typecho博客 下的文章

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 );
}

代码插入位置及原理说明

放在主题的function.php文件里。

参数说明:插入函数主要就是通过内容<p>标签来识别段落,prefix_insert_after_paragraph( $ad_code, 2, $archive->content );
第一个参数是插入文章中的广告代码,第二参数是P标签的位置,可以理解为段落;第三个参数是文章内容

原理:系统在加载typecho页面的时候,会运行一下themeInit函数,这个时候就可以编辑页面。这里利用编辑的功能往页面插入广告代码。
80660-6uyppoy177u.png

Typecho获取显示更新时间 日期格式化 显示发布日期更新日期 时间戳

显示2018-12-15

$this->date();

显示 2018-12-15 09:00

$this->date('Y-m-j H:i');

显示 March 22nd , 2018 at 09:45 am

$this->date('F jS , Y \\a\t h:i a');

获取文章的更新时间时间戳

$this->modified();

显示 2018-12-16 13:11,格式化,注意后面没有括号()

<?php echo date('Y-m-d H:m' , $this->modified); ?>

1. 备份cnblog内容

76706-nsv0c5lie4e.png

下载导出工具php文件

下载地址:https://github.com/BackTrackCRoot/cnblogs-to-typecho

使用说明

2. 填写数据库配置导入

19380-mzvruh8jrs.png

3. 提示导入成功,发现博客导入成功!

45188-dkjf37mmrp7.png

注意事项:

如果提示,“It is not safe to rely on the system’s timezone settings”问题

第一行加入设置时区代码即可

<?php
ini_set('date.timezone','Asia/Shanghai');
if ($_SERVER['REQUEST_METHOD'] == 'POST')

开启了重写访问404找不到博文,是因为slug没值,通过下列语句更新,即可访问

update typecho_contents set slug = title where slug is null;
免责声明
本博客部分内容来自于互联网,不代表作者的观点和立场,如若侵犯到您的权益,请联系[email protected]。我们会在24小时内进行删除。