获取几个选定分类的对象

时间:2014-04-25 作者:psot

我有一些自定义分类法,我想在foreach循环中用作对象。

我知道这些函数可以返回所有分类法的对象:

global $wp_taxonomies;
或post taxonomies对象:

$taxonomy_objects = get_object_taxonomies( \'post\', \'objects\' );
但是如果我只想在对象中包括一些分类法,比如video, audio, tvradio (所有分类名称),我该怎么办?

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

我不知道有什么函数可以只获取post类型的特定术语对象,但要过滤掉所需的对象并不困难。例如:

$taxonomies = get_object_taxonomies( \'post\', \'objects\' );
$taxonomies = array_intersect_key($taxonomies,array_flip(array(\'category\',\'post_tag\')));
var_dump($taxonomies);
但是既然你知道你想要的分类法,你也可以使用get_taxonomy( $taxonomy ) 多次。

$tax_objects = array();
$taxlist = array(
  \'category\',
  \'post_tag\'
);
foreach ($taxlist as $tax) {
  $tax_objects[$tax] = get_taxonomy($tax);
}
var_dump($tax_objects);
或者你可能把事情弄得比需要的更复杂。您只需使用所需的分类法即可:

$taxonomies = get_object_taxonomies( \'post\', \'objects\' );
if (!empty($taxonomies[\'category\'])) {
  var_dump($taxonomies[\'category\']);
}
显然,上面的所有代码都使用核心分类法(因此我可以进行测试),但您可以很容易地将其替换为自己的专用分类法。

结束

相关推荐

Removing a taxonomy term

有一个名为wp\\u remove\\u object\\u terms的Wordpress函数,不幸的是,它似乎不起作用。我试图通过以下方法达到同样的目的 $post_terms = wp_get_object_terms( $post_id, $taxonomy ); if( $post_terms ){ if(($key = array_search($term_id, $po