You need to enable JavaScript to run this app. 如何在WordPress中根据文章所选自定义分类法的年份设置带标题的自定义永久链接
优惠活动
大模型
产品
解决方案
定价
更多

如何在WordPress中根据文章所选自定义分类法的年份设置带标题的自定义永久链接

WordPress自定义年份分类法动态永久链接实现方案

以下方案默认你使用的是WordPress站点,假设你的年份自定义分类法的slug为year_tax,实际使用时请替换为你自己注册的分类法别名。


实现步骤

1. 添加自定义重写标签

将以下代码加入你当前主题的functions.php文件,或自定义功能插件的代码文件中:

// 注册年份分类法的重写标签
function custom_year_rewrite_tag() {
    add_rewrite_tag('%year_tax%', '([0-9]{4})');
}
add_action('init', 'custom_year_rewrite_tag');

2. 注入动态替换逻辑

添加以下代码,实现永久链接中的年份动态读取你选中的分类法值:

// 替换文章永久链接中的年份占位符
function custom_year_permalink_generator($permalink, $post, $leavename) {
    // 仅处理默认post类型,自定义文章类型可自行修改判断条件
    if ($post->post_type !== 'post' || strpos($permalink, '%year_tax%') === false) {
        return $permalink;
    }

    // 获取当前文章绑定的年份分类项
    $year_terms = get_the_terms($post->ID, 'year_tax');
    if (!empty($year_terms) && !is_wp_error($year_terms)) {
        // 取首个选中的年份作为链接值,多年份关联可自行调整此处逻辑
        $year_value = reset($year_terms)->slug;
    } else {
        // 未选择年份时的默认兜底值,可按需修改
        $year_value = 'unknown-year';
    }

    return str_replace('%year_tax%', $year_value, $permalink);
}
add_filter('post_link', 'custom_year_permalink_generator', 10, 3);

3. 配置后台固定链接规则

  1. 进入WordPress后台「设置」-「固定链接」页面
  2. 选择「自定义结构」选项,填入如下内容:
    /%year_tax%/%postname%/
  3. 点击「保存更改」,无需修改其他内容,保存操作会自动刷新全站重写规则

常见问题排查

  • 配置完成后访问文章出现404:重新进入固定链接页面再次点击保存即可,不需要修改已填的自定义结构
  • 自定义文章类型不生效:将代码中的post_link过滤器替换为post_type_link,同时修改$post->post_type的判断条件为你自己的自定义文章类型slug
  • 多年份分类项关联时显示不符合预期:调整第二步代码中reset($year_terms)的取值逻辑,按你的需求取对应分类项的slug即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 14:36:04