给自定义类型加了分类法,代码没报错,编辑页右侧就是没有那个分类框,前台模板也调不出分类项。第一次遇到会往复杂处想,其实漏掉的多是个小前提。

register_taxonomy('genre', ['book'], [
  'label' => '分类',
  'hierarchical' => true,
  'show_in_rest' => true,
]);

register_taxonomy 的第二个参数是要绑定的文章类型名,与 register_post_type 注册的名字不一致时既不报错也不显示。这一点先确认清楚,后面就不用反复试。

「register_taxonomy 不显示」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。

动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。一次只改一处,改完立刻验证,几个改动叠在一起,出问题就说不清是谁导致的。

具体做法是,核对两个注册函数里写的类型名是否完全一致;确认分类法挂在 init 上且优先级不要太靠前;刷新后台编辑页看分类框与前台模板是否正常。

改完照着核一遍,后台编辑页出现分类框,前台模板也能取到对应的分类项。

作者 9823189