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 的开始时间后保存。

Uptime 设置

修改主题里的文件,在想展示的位置加入以下代码:

<?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. 访客日志

之前使用的插件:Access Blog | Github

不过遇到添加 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 · 转载请保留原文链接及作者

标签: typecho

添加新评论

已有 2 条评论

  1. 兄嘚,我已经更新了Sitemap插件下载链接,现在这个插件可以满足谷歌要求了: Typecho网站地图插件Sitemap

    1. z z

      好的,感谢提醒,我替换这个试试~