如何在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. 配置后台固定链接规则
- 进入WordPress后台「设置」-「固定链接」页面
- 选择「自定义结构」选项,填入如下内容:
/%year_tax%/%postname%/ - 点击「保存更改」,无需修改其他内容,保存操作会自动刷新全站重写规则
常见问题排查
- 配置完成后访问文章出现404:重新进入固定链接页面再次点击保存即可,不需要修改已填的自定义结构
- 自定义文章类型不生效:将代码中的
post_link过滤器替换为post_type_link,同时修改$post->post_type的判断条件为你自己的自定义文章类型slug - 多年份分类项关联时显示不符合预期:调整第二步代码中
reset($year_terms)的取值逻辑,按你的需求取对应分类项的slug即可
内容的提问来源于stack exchange,提问作者Patel Nitesh
相关产品推荐
相关产品推荐

