Get_Terms与Get_Categories:这重要吗?

时间:2012-05-24 作者:Stephen S.

我对wordpress还很陌生,每天都会遇到新的事情——其中一件就是今天我偶然遇到的get_terms 注意到它基本上与get_category.

使用其中一种有什么特别的原因吗?有什么我遗漏的吗?

3 个回复
最合适的回答,由SO网友:mrwweb 整理而成

当你深入WordPress时,你会发现WordPress有很多包装函数。例如add_theme_page 那只是一个包装add_submenu_page. 这当然不是唯一的例子(add_submenu_page 事实上,它本身有一堆包装材料)。如果你看the source for get_categories(), 你会看到它也是get_terms() (这是我自己才知道的,谢谢!)。

我发现与分类法相关的函数是一些最复杂的函数。他们中的许多人接受非常相似的论点,并返回相似的东西,但差异很小。在这种情况下,get_terms() 有一个name__like 参数get_category() 没有。可能还有其他一些小区别。

作为个人喜好,我尝试使用get_terms() 尽可能多。在某些情况下,比如add_theme_page 这是推荐的功能(大概是为了让WordPress可以对主题页进行更改并保持该功能正常工作),但在其他情况下,像这样的情况,我认为没有多大区别。如果没有别的,这种熟悉感可以帮助我更快地做更多的事情。但是,返回HTML列表的一些函数如下wp_list_categories() 有时可能有用。

SO网友:Brent Clark

最重要(但不是很明显)的区别之一是get_terms()get_categories() 是吗get_categories() 是的包装函数get_terms(\'category\'). 这意味着您无法使用get_categories() 并且必须使用get_terms() 相反

SO网友:FLOQ Design

可以使用查询自定义分类法get_categories

示例:

// Taxonomy query
$venue_args = array(
  \'child_of\'   => $venue_id,
  \'taxonomy\'   => \'wpmf-category\',
  \'hide_empty\' => false
);
$venue_cats = get_categories( $venue_args );

结束