智宇腾文化blog
一个追求极致的精致blog

WordPress查询指定post_type下所有taxonomy函数:get taxonomies

$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);  }

 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

分享到: 生成海报
智宇腾文化blog

热门文章

    评论 抢沙发

    评论前必须登录!

    立即登录   注册

    切换注册

    登录

    忘记密码 ?

    您也可以使用第三方帐号快捷登录

    切换登录

    注册

    我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活