问题描述

我对 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。