Typecho 文档:让标签页的路径显示为静态地址 - 立云图志

Typecho 文档:让标签页的路径显示为静态地址

2023-03-04

适用程序:Typecho
程序版本:1.2.1
文档作者:Lopwon
作者博客:Lopwon.com
发布页面:Lopwon.com/3379.html
官方演示:tag/firefly.html

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

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

文档说明

此文档来自网友在 Typecho 论坛上提出的需求,当然,是作者做出了解答。该功能不常用,但对于在意 SEO 的使用者,倒是可以尝试下。


使用方法

A 涉及文件

var/Widget/Options/Permalink.php

B 改造文件

作用:自定义标签页的路径形式。

打开文件 var/Widget/Options/Permalink.php 新增三处代码:

1. 在适当位置(如:第 53 行)添加以下代码:

    /**
     * 检查tagPattern里是否含有必要参数
     *
     * @param mixed $value
     * @return bool
     */
    public function checkTagPattern($value): bool
    {
        return strpos($value, '{slug}') !== false
            || strpos($value, '{mid}') !== false;
    }    

2. 搜索找到

    $routingTable['category']['url'] = '/' . ltrim($this->encodeRule($this->request->categoryPattern), '/');

在以上代码的(下一行),添加以下代码:

    $routingTable['tag']['url'] = '/' . ltrim($this->encodeRule($this->request->tagPattern), '/');

3. 搜索找到

    /** 提交按钮 */

在以上注释的(上一行),添加以下代码:

    /** 标签页面 */
    $tagPattern = new Form\Element\Text(
        'tagPattern',
        null,
        $this->decodeRule($this->options->routingTable['tag']['url']),
        _t('标签路径'),
        _t('可用参数: <code>{mid}</code> 标签 ID, <code>{slug}</code> 标签缩略名')
        . '<br />' . _t('请在路径中至少包含上述的一项参数.')
    );
    $tagPattern->input->setAttribute('class', 'mono w-60');
    $form->addInput($tagPattern->addRule([$this, 'checkTagPattern'], _t('标签路径中没有包含 {mid} 或者 {slug} ')));

至此,在后台》设置》永久链接,已经可以看到(标签路径)的功能选项。

感谢观赏

支持作者:Buy Me a 冰棒

Store

准备下山 准备下山
Snapic Plus v5
使用 Lopwon POP 实现