Typecho 博客的部分功能设置和插件
Typecho 博客的一些设置,先 list 一下后续选择记录上来。
1. 文章字数和预计阅读时间 🔗 链接
2. 文章可能过时提醒 🔗 链接
3. 文末加上原文链接&作者信息
在主题文件夹中找到 post.php
文件,在 <?php $this->content(); ?>
底下添加
<div style="background-color: #f0f0f0; border: 1px solid #e0e0e0; border-radius: 5px; padding: 10px; font-size: 14px;box-shadow: 0 2px 4px rgba(0,0,0,0.05);">
<p style="line-height: 1.2; margin: 5px 0">标题:<?php $this->title() ?></p>
<p style="line-height: 1.2; margin: 5px 0">日期:<?php $this->date('Y-m-d'); ?></p>
<p style="line-height: 1.2; margin: 5px 0">链接:<a href="<?php $this->permalink(); ?>" style="color: inherit; text-decoration: none;"><?php $this->permalink(); ?></a></p>
<p style="line-height: 1.2; margin: 5px 0">许可:<a href="https://creativecommons.org/licenses/by/4.0/deed.zh-hans?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="color: inherit; text-decoration: none;">© CC BY 4.0</a> · 转载请保留原文链接及作者</p>
</div>
简单起见直接用了内联样式,自行按需调整,内容许可信息可在此选择:Creative Commons licenses
4. 页脚设置版权相关信息
5. 文章浏览数量 🔗 链接
6. 博客运行时间
插件:Uptime Github
下载解压将 Uptime
文件夹上传到 Typecho 博客主题的 /usr/plugins/
目录后即可在后台启用插件,在插件设置中填入 blog 的开始时间后保存。
修改主题里的文件,在想展示的位置加入以下代码:
<?php Uptime_Plugin::show(); ?>
Feb 27, 2025 update
插件有个小问题:如果在页面上没有
.uptime
元素时(即展示的位置不是在全部页面),JavaScript 尝试设置其innerText
属性会导致错误,体现在console
中一直不断报错。解决办法:在设置属性前检查元素是否存在
找到插件目录下
Plugin.php
文件中以下这一行:document.querySelector(".uptime").innerText = text;
修改为:
// document.querySelector(".uptime").innerText = text; // 检查元素是否存在,避免报错 var uptimeElement = document.querySelector(".uptime"); if (uptimeElement) { uptimeElement.innerText = text; } }, 1000); // 添加 1 秒的更新间隔
保存后重新刷新就 ok 了。
7. 添加 Cloudflare Turnstile
插件:XCaptcha CairBin's Blog | Github
插件页面已有较详细使用介绍,我用的 Cloudflare Turnstile,把 Site Key 和 Secret Key 填入插件中保存,并把相关代码放到主题相关位置即可。
<?php if (array_key_exists('XCaptcha', Typecho_Plugin::export()['activated'])) : XCaptcha_Plugin::showCaptcha(); endif; ?>
8. 访客日志
不过遇到添加 IP 白名单不生效的 bug,导致后台会记录许多自己的访问,因此没再使用了。
9. RSS 🔗 链接
10. Sitemap
Feb 13, 2025 update
换用这个插件不用修改:Sitemap Github
插件:Sitemap lmcc-老马吃草的博客 | Github
该插件有个小问题:生成的带时间的日期格式不符合 W3C Datetime 标准 YYYY-MM-DDThh:mm:ss+TZ
,直接提交到 Google Search Console 会报错 Invalid date
。
我偷懒就直接将日期格式改成了仅 YYYY-MM-DD
。
修改插件目录下的文件 SiteMapLogic.php
:
/**
* 设置节点
* @param $loc
* @param null $lastmod
* @param string $changefreq
* @param float $priority
*/
public function setNode($loc, $lastmod = null, $changefreq = 'always', $priority = 0.7)
{
$lastmod = $lastmod ?: time() - random_int(60, 600);
$this->nodes .= "\t<url>\n" .
"\t\t<loc>{$loc}</loc>\n" .
"\t\t<lastmod>" . date('Y-m-d', $lastmod) . "</lastmod>\n" .
"\t\t<changefreq>{$changefreq}</changefreq>\n" .
"\t\t<priority>{$priority}</priority>\n" .
"\t</url>\n";
}
保存即可。
标题:Typecho 博客的部分功能设置和插件
日期:2024-10-28
链接:https://logs.do/logs/configure-typecho-blog.html
许可:© CC BY 4.0 · 转载请保留原文链接及作者
兄嘚,我已经更新了Sitemap插件下载链接,现在这个插件可以满足谷歌要求了: Typecho网站地图插件Sitemap
好的,感谢提醒,我替换这个试试~