如果在自定义帖子类型中使用,则获取类别

时间:2020-01-29 作者:Bonttimo

我试图获得一个类别列表,如果它们用于自定义帖子类型。帖子类型使用默认类别分类法。还有其他自定义帖子类型使用相同的默认WP类别。

是否可以添加meta\\u查询来检查类别是否用于自定义post\\u类型?eq:自定义职位类型:工作。

$work_categorys = get_terms(
 [ 
   \'taxonomy\' => "category", 
   \'hide_empty\' => true,
 ]
);

foreach ($work_categorys as $key => $value) { echo \'<li data-filter-tag="\'.$value->slug.\'" class="">\'.$value->name.\'</li>\'; }

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

This would work. 发布人@bucketpress.

$someposts = get_posts(
    array(
        \'post_type\' => \'work\',
        \'posts_per_page\' => -1,
        \'fields\' => \'ids\', // return an array of ids
    )
);

$somepoststerms = get_terms(
    array(
        \'taxonomy\' => \'category\',
        \'object_ids\' => $someposts,
        \'hide_empty\' => true,
    )
);

SO网友:Greg Winiarski

要从分配给“工作”自定义帖子类型的所有分类中获取所有术语,您可以自定义代码如下所示

$taxes = array_keys( get_object_taxonomies( \'work\', \'objects\' ) );
$work_categorys = get_terms(
 [ 
   \'taxonomy\' => $taxes, 
   \'hide_empty\' => true,
 ]
);

相关推荐

更改分类术语的默认顺序-PRE_GET_TERMS

我想通过其“term\\u order”值而不是管理端的“name”来更改默认的分类术语顺序。所以我尝试了下面的方法。但它不工作,php内存耗尽。function uc_order_term( $wp_query ) { $wp_query->query( array( \'taxonomy\' => \'category\', \'orderby\' => \'term_order\