You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在发布文章时自动将自定义分类法追加到固定链接末尾?

解决方案:将自定义分类法追加到文章固定链接末尾

嘿,我之前刚好碰到过一模一样的需求,折腾了会儿终于找到靠谱的方法——用WordPress的钩子直接修改固定链接生成逻辑,完全能控制把自定义分类法放在标题后面,具体步骤如下:

1. 设置基础固定链接结构

先去WordPress后台的「设置」→「固定链接」,选择「自定义结构」,输入 /%postname%/ 作为基础结构,保存设置。这一步是为后续修改打基础。

2. 添加自定义代码实现追加逻辑

把下面的代码添加到你的主题 functions.php 文件里,或者创建一个简单的自定义插件来放这段代码(推荐插件方式,避免主题更新丢失代码):

function append_year_to_post_permalink($permalink, $post, $leavename) {
    // 仅处理普通文章类型,如果是自定义文章类型,替换成对应的类型名即可
    if ($post->post_type !== 'post') {
        return $permalink;
    }

    // 获取当前文章关联的「years」自定义分类法术语(取slug值)
    $terms = wp_get_post_terms($post->ID, 'years', array('fields' => 'slugs'));
    
    // 如果存在关联的年份术语,就追加到链接末尾
    if (!empty($terms)) {
        // 取第一个关联的年份(如果一篇文章对应多个年份,可调整这里的逻辑)
        $year_slug = $terms[0];
        // 确保链接末尾有斜杠,避免替换出错
        $permalink = trailingslashit($permalink);
        // 将原链接中的文章名部分替换为「文章名-年份」的形式
        $permalink = str_replace($post->post_name . '/', $post->post_name . '-' . $year_slug . '/', $permalink);
    }

    return $permalink;
}
add_filter('post_type_link', 'append_year_to_post_permalink', 10, 3);

3. 刷新固定链接规则

代码添加完成后,回到后台的「固定链接」设置页面,不需要修改任何内容,直接点击「保存更改」按钮。这一步是让WordPress刷新重写规则,确保新的链接格式生效。

额外说明:

  • 如果你的文章可能关联多个「years」分类法术语,代码里默认取第一个,你可以根据需求修改成取最后一个或者拼接多个(比如用implode('-', $terms)把所有年份连起来)。
  • 如果想使用分类法的名称而不是slug,把代码里的'fields' => 'slugs'改成'fields' => 'names'即可,但slug通常更适合出现在URL里(无特殊字符、全小写)。
  • 如果你需要对自定义文章类型生效,把代码里的$post->post_type !== 'post'改成你的自定义文章类型名称,比如$post->post_type !== 'product'(假设你的自定义类型是product)。

这样设置后,你的文章固定链接就会变成https://example.com/mysamplepost-2018这种形式啦,完全符合你的需求~

内容的提问来源于stack exchange,提问作者juicebyah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:23:31