改栏目名称后,旧导航和面包屑通常不会同时失效,而是出现一种反直觉结果:导航看起来已经更新,面包屑却仍显示旧名,或者反过来。原因多半不在“缓存没清”,而在于导航和面包屑读取的是不同来源。处理顺序应当是先确认来源,再决定改菜单、改分类法还是加跳转,而不是先批量替换模板文字。
在 WordPress 里,“导航”和“面包屑”经常被当成同一套数据,实际上它们可能分别来自不同位置。导航中的栏目名,可能是外观菜单里手工填写的“导航标签”;而面包屑中的栏目名,往往读取分类法术语的名称,也就是分类、标签或自定义分类项的“名称”字段。两者可以不一致,而且这种不一致是允许存在的。
因此,改名后如果导航变了、面包屑没变,先不要认定是缓存问题。打开菜单编辑界面,看该菜单项的“导航标签”是否被单独改过;再进入分类法列表,看术语名称是否仍是旧值。若导航标签是新名、术语名称是旧名,那么面包屑显示旧名就是预期结果,不是故障。
反过来,如果术语名称已经改了,导航却还是旧名,说明该菜单项使用了自定义导航标签,没有跟随术语名称变化。这时要决定的是:导航文字是否必须与栏目名完全一致。若必须一致,就手动更新菜单标签;若不必须,保留更短的导航标签反而有利于窄屏显示。
旧导航仍然出现,常见有两种解释。第一种是菜单或小工具里存在两份入口:一份是新菜单,一份是旧菜单,只是旧菜单被放在不显眼的位置或只在某些页面显示。第二种是页面缓存或对象缓存仍在提供旧版本,数据库其实已经更新。
区分方法不靠猜,而靠可核对的位置证据。用浏览器的开发者工具查看该导航链接指向的地址:如果地址仍指向旧别名(slug),而分类法里旧别名已经不存在,那么更可能是模板或菜单中硬编码了旧链接;如果地址已经指向新别名,只是文字是旧的,那么更可能是缓存或菜单标签未更新。再检查菜单分配位置:同一个主题位置是否被两个菜单争用,旧菜单是否仍被指定给“移动端”或“页脚”位置。
还有一个容易被忽略的解释:旧导航来自小工具、页脚模板或页面构建器保存的静态链接,而不是菜单系统。这类链接不会因为改了分类法名称而自动更新。判断依据是它是否出现在“外观 → 菜单”之外的位置,以及是否在多个不相关页面重复出现。
面包屑的生成方式差异很大。有的主题直接输出分类法术语名称,有的读取菜单结构,有的由插件根据当前页面的父级关系生成。若面包屑读取的是术语名称,那么改完名称后它应当变化;若它读取的是自定义字段、旧别名或固定文本,就不会变。
可执行的核对动作是:临时把该分类法的别名(slug)也改掉,然后观察面包屑中的链接地址是否变化。如果地址变了、文字没变,说明面包屑读的是别名或固定文本;如果地址和文字都没变,说明它读的是缓存或另一份数据。这个动作的结果直接决定下一步:读术语名称的,只需改名称;读固定文本的,要改模板或插件设置;读缓存的,清理对应缓存层即可,不必动数据库。
假设某站把分类“旧栏目”改名为“新栏目”,但只改了术语名称,没有改别名,也没有更新菜单标签。此时可能出现:面包屑显示“新栏目”,导航仍显示“旧栏目”,而两者链接都指向同一个归档页。用户看到的是同一目的地、两个名字,容易怀疑网站有重复栏目。
如果随后把菜单标签也改成“新栏目”,但旧别名仍被其他文章内链引用,那么从旧链接进入时,面包屑可能仍显示旧名,因为部分主题会依据请求的别名回显。这个假设说明:改名不是单点操作,而是名称、别名、菜单标签、内链四处可能各自独立。下一步应先决定别名是否保留,再决定哪些位置必须同步。
处理这类问题,建议按以下顺序推进,每一步的结果都会影响下一步:
完成这些步骤后,若导航和面包屑仍不一致,应回到“它们是否必须一致”这个前提。导航可以比栏目名更短,面包屑可以更完整,两者不要求逐字相同。真正需要一致的是链接目的地和用户对层级的理解,而不是每一处文字都相同。