Filter "get_terms" query

时间:2019-04-26 作者:Jimmy Adaro

我目前正在使用以下方法从自定义分类中获取数据:

$terms = get_terms(array(
    \'taxonomy\' => \'my_custom_taxonomy_name\',
    \'hide_empty\' => true
));
现在,这在每个WP_Term 对象term_id, name, slug, term_group, term_taxonomy_id, taxonomy, description, parent, countfilter.

我只需要得到其中的两个:nameslug. 如何过滤该查询,使其不会返回所有未使用的数据?

2 个回复
SO网友:Scotty G

按你现在的方式,你不能。你需要手动查询你想要的东西。

global $wpdb;
$query = "SELECT \'name\', \'slug\' FROM wp-term_taxonomy WHERE ..."

SO网友:nmr

这个"fields" parameter 允许您选择返回的内容get_terms(). 您可以选择名称数组(\'fields\' => \'id=>names\') 或鼻涕虫(\'fields\' => \'id=>slugs\'), 但不是同时具有这两个属性的数组。

有一个过滤器get_terms_fields, 您可以在其中更改要查询的列(仅获取名称和slug),but 结果仍然是array of WP_Terms objects.

我认为最好继续使用您目前拥有的解决方案。

相关推荐

Wp_Term_Taxonomy.Parent引用了什么?

我最初的想法是,它引用了另一种分类法(即wp_term_taxonomy.parent 到wp_term_taxonomy.term_taxonomy_id). Corcel这样的怪物built under this assumption. 然而,我done some digging 大多数信息似乎表明它实际上引用了wp_terms.term_id. 在Corcel的案例中,我认为这种巧合是可行的——WordPress将设置term_id 以及term_taxonomy_id 到相同的值。如果您弄乱了数据