$args = array(
'public' => true,
'object_type' =>array('demand'),
);
$output = 'object'; // or objects
$operator = 'and'; // 'and' or 'or'
$taxonomies = get_taxonomies( $args, $output, $operator );
if ( $taxonomies ) {
foreach ( $taxonomies as $taxonomy ) {
if( is_taxonomy_hierarchical($taxonomy->name) ){
echo $taxonomy->labels->name;
}else{
echo $taxonomy->labels->name.'没有层级';
}
}
}unset($taxonomy);
这样就输出了注册到demand类型下的所有taxonomy
2019.02.01补充
截至wp5.0这个函数有个bug,就是如果一个taxonomy同时关联了多个post type,当指定post type查询时,是无法输出这个taxonomy的。
解决办法只能是先查询出全部的taxonomy,然后获取taxonomy的 object type数组,查询当前post type是否匹配:
$post_type = 'demand'
$cat_taxonomies = array();
$tag_taxonomies = array();
$taxonomies = get_taxonomies(array(), 'object', 'and' );
if ( $taxonomies ) {
foreach ( $taxonomies as $taxonomy ) {
if(!in_array($post_type,$taxonomy->object_type)){
continue;
}
if( is_taxonomy_hierarchical($taxonomy->name) ){
array_push($cat_taxonomies, $taxonomy->name);
}else{
array_push($tag_taxonomies, $taxonomy->name);
}
}unset($taxonomy);
}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。