折腾博客 之 Wordpress to Typecho
前言
起因是wordpress
会自动安装一个名为wpcode
的插件,每次删除卸载之后仍会自动安装,有一次直接导致网站无法访问,百度不得其解.重装也不起效. 于是弃之. 转投typecho
的怀抱.
环境
PHP 8.2 Mysql 5.5
转换
先安装Typecho
. 1.下载插件 WordpressToTypecho
,配置好数据库的相关设置, 参考 https://docs.typecho.org/import 2.点击转换成功之后,把附件资料从WordPress
的wp-content/uploads
目录下全部移动到Typecho
的usr/uploads
目录下,保持目录结构不变。 3.在数据库中执行
1
update typecho_contents set text=replace(text,'wp-content/uploads','usr/uploads')
4.设置伪静态,保持与wordpress相同的链接结构
使用
插件
1.AAEditor
Markdown编辑器功能强大 2.AISummary
使用ChatGPT或者Gemini生成文章摘要.开箱即用. 看到木木老师有分享这个网站,可以使用我的aff注册,谢谢 https://burn.hair/register?aff=a8fr
新用户赠送 2500000 token,约等于 5 USD 邀请用户注册,双方各得 1000000 token,约等于 2 USD
3.Links
友情链接插件 4.ShortLinks
把外链转换成内链 php8.2报错需修改Plugin.php
1
//$str = str_replace(array("\r\n", "\r", "\n"), "|", $textarea);
为
1
2
3
4
// 检查 $textarea 是否为 null,如果是,设为一个空字符串
$textarea = $textarea ?? '';
// 然后你可以对其使用 str_replace
$str = str_replace(array("\r\n", "\r", "\n"), "|", $textarea);
5.SiteMap
网站地图 6.WordsCounter
字数统计 7.cosUploadV5
腾讯COS对象储存
主题
主题使用开源的 Matcha
1.修改 想让首页显示的摘要为AI生成的摘要 把matcha/includes/posts.php
中的
1
2
3
<div class="post-content" itemprop="articleBody">
<?php Matcha::excerpt($this); ?>
</div>
替换为
1
2
3
4
5
6
7
8
9
10
<div class="post-content" itemprop="articleBody">
<?php
// 判断是否存在自定义字段summary并输出,否则输出自动生成的摘要
if($this->fields->summary){
echo $this->fields->summary;
} else {
Matcha::excerpt($this);
}
?>
</div>
主题使用Sunny Lite!
时,修改article.php
中
1
<?php echo get_Abstract($this,300); ?>
替换为
1
<?php echo $this->fields->summary;?>
2.显示页面加载时间 在主题的 Functions.php
中加入以下代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/**
* 页面加载时间
*/
function timer_start() {
global $timestart;
$mtime = explode( ' ', microtime() );
$timestart = $mtime[1] + $mtime[0];
return true;
}
timer_start();
function timer_stop( $display = 0, $precision = 3 ) {
global $timestart, $timeend;
$mtime = explode( ' ', microtime() );
$timeend = $mtime[1] + $mtime[0];
$timetotal = number_format( $timeend - $timestart, $precision );
$r = $timetotal < 1 ? $timetotal * 1000 . " ms" : $timetotal . " s";
if ( $display ) {
echo $r;
}
return $r;
}
在 footer.php
合适位置插入
1
<?php echo timer_stop();?>
或者
1
2
3
4
<a href="javascript:(0)" id="pagetimes"></a>
<script>
document.getElementById('pagetimes').innerHTML = '<img src="https://img.shields.io/badge/页面加载耗时:-<?php echo timer_stop();?>-green">';
</script>
3.使用memos API增加说说页面 把 page-memos.php放在模板matcha
下
然后在后台新建独立页面
-选择模板
添加字段
中自定义 memos
= memos地址 默认为https://memos.imsun.org memostag
= 使用的tag 可以选择默认,默认为说说
creatorId
= memos的ID,默认为1 memosname
= 显示的昵称 memosava
= 显示的头像
4.关闭非中文语系的评论 查找comments.php
文件中
1
<?php if($this->allow('comment')): ?>
替换为
1
<?php if($this->allow('comment') && stripos($_SERVER['HTTP_ACCEPT_LANGUAGE'], 'zh') > -1): ?>
5.打赏 根据插件Donate
提取
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!--打赏 -->
<script type="text/javascript" src="https://blogcdn.loliko.cn/donate/index_wx.js?121"></script>
<link rel="stylesheet" type="text/css" href="https://blogcdn.loliko.cn/donate/style_wx.css?121" />
<div class="donate-panel">
<div id="donate-btn">赏</div>
<div id="qrcode-panel" style="display: none;">
<div class="qrcode-body">
<div class="donate-memo">
<span id="donate-close">关闭</span>
</div>
<div class="donate-qrpay">
<img id="wxqr" src="https://blogcdn.loliko.cn/donate/2in12.png" />
</div>
</div>
</div>
</div>
参考 1.https://docs.typecho.org/import