Typecho 文档:给文章上一篇下一篇添加缩略图功能

2023年08月09日

适用程序:Typecho
程序版本:1.2.1
文档作者:Lopwon
作者博客:Lopwon.com
发布页面:Lopwon.com/3515.html
许可方式:付费改造

注意:此文档源于作者在博客改造中的一些经验总结,转载还请署名。

敬告:此文档操作涉及程序核心文件的修改,作者不对你在使用中产生的任何问题造成的不良后果,承担责任。

文档说明

Typecho 默认的文章翻篇功能,只输出上一篇和下一篇的文章标题和链接,也可以通过自带的参数自定义样式,但是,却无法输出对应文章里的图片,也就是翻篇缩略图。这在使用 WordPress 的博客里是很常见的功能,在 Typecho 的博客却极少见到,虽然,网络上也能找到一些解决方案:要么需要重制函数查询数据库的方式实现,要么需要用自定义字段添加图片链接实现,要么需要付费解锁查看关键代码……

嗯,根据自己的需求自己动手,琢磨出其他方法,不仅可以让文章翻篇显示对应文章的图片,也无需自定义字段人工添加图片,也不用对原有的翻篇函数做数据查询改动,只要文章有图片附件(这也是自己博客的特性)或者内容中有图片,就可以直接输出对应文章的图片,没有图片也可以自定义默认图片或随机图片,还可以运用在更多场景下显示文章图片,比如:以标签维度输出相关文章的场景、以随机输出文章列表的场景、以浏览量或评论数输出文章列表的场景,等等。


使用方法

A 涉及文件

var/Widget/Archive.php
usr/themes/***/functions.php

B 改造文件

作用:给文章上一篇下一篇添加缩略图功能

打开文件 var/Widget/Archive.php 在顶部适当位置添加以下代码:

    use Widget\Options;

继续在文件 var/Widget/Archive.php 的函数 theNext() 和 thePrev() 内分别添加以下代码,作用是调用 functions.php 内的自定义函数:

    $options = Options::alloc();
    $functonsFile = $options->themeFile($options->theme, 'functions.php');

    if (file_exists($functonsFile)) {

        //关键代码已隐藏

    }

    //以上可以缩减为一行变量赋值的代码

继续在文件 var/Widget/Archive.php 的函数 theNext() 和 thePrev() 内分别找到 <a> 标签内的参数,如下:

    ' . $linkText . '

将以上参数替换为以下参数,作用是引入图片:

    ' . $linkText . $getAttImg . '

打开你在用主题下的文件 functions.php 添加以下代码:

    function getAttImg($var) {

        //关键代码已隐藏

    }

    //以上代码可以自定义读取图片的来源:从附件里、从内容中、或指定目录

至此,已经实现文章翻篇显示缩略图的功能。另外,也可以通过调用函数 getAttImg($var) 实现其他场景显示对应文章图片的功能。

电邮 lopwon@qq.com 付费改造。

store