问题描述
我对 WordPress 来说是相当新鲜的,每天都会遇到新的东西 – 一个是在 get_terms
发生的时候,注意到它与 get_category
基本相同。
任何特定的原因使用一个或另一个?有没有我失踪的东西?
最佳解决方案
当你潜入 WordPress,你会发现 WordPress 有很多包装功能。例如,add_theme_page
只是 add_submenu_page
的包装器。这当然不是唯一的例子 (实际上,add_submenu_page
本身有一堆包装器) 。如果你看看 get_categories()
的源码,你会看到它也是 get_terms()
的封装 (我刚刚学到了我自己,所以谢谢!) 。
我发现 taxonomy-related 功能是最复杂的一些功能。他们中的很多人都非常相似,并且返回类似的东西,差别很小。在这种情况下,get_terms()
具有 name__like
参数,get_category()
没有。也可能有其他一些差异。
作为个人喜好,我尽量使用 get_terms()
。在某些情况下,像 add_theme_page
这是推荐的功能 (大概是这样 WordPress 可以改变主题页面并保持该功能的工作),但在其他情况下,像这样,我不认为它有很大的不同。如果没有别的,熟悉程度可以帮助我更快地做更多的事情。但是,返回 HTML 列表 (如 wp_list_categories()
) 的某些功能有时可用。
次佳解决方案
get_terms() 和 get_categories() 之间最重要的 (而非非常明显的) 差异之一是 get_categories() 是 get_terms(‘category’) 的包装功能。这意味着您无法使用 get_categories() 获得自定义分类,并且必须使用 get_terms() 。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。