wp term list category --fields=term_id,name,slug
wp post list --post_type=page --fields=ID,post_title,post_name
wp rewrite flush

建了一个别名 news 的页面,分类目录里也有一个 news,访问 /news/ 打开的是分类列表,页面在后台能编辑却永远看不到,改别名后才恢复。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。

原因不复杂,WordPress 解析请求时先匹配文章类型再匹配分类,页面和分类共用同一个 slug 时分类优先。数据库里两条记录都合法,冲突不会在保存时报出来。

围绕「归档页面冲突」排查时,命令行跑一遍比在面板里点十次有用,面板会替你做掉不少隐式操作。动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。

处理上按这个顺序:先列出所有分类、标签、页面的别名,找出重复的那几个;给页面换一个不冲突的别名,或在分类前加统一前缀;旧地址加 301,指到保留下来那一条;保存别名时做一次冲突检查,提前提示而不是等上线发现。

改完只确认一件事:访问 /news/ 打开的是预期的那一个,另一个地址 301 指过去,后台保存重复别名时会提示冲突。

作者 9823189