列出从自定义 post 类型分配的所有分类法

List all taxonomies assigned from a custom post type

我真的很想在这里寻求帮助,从昨天开始就一直在尝试这样做,但仍然没有成功,所以这就是我想要实现的目标

Collection = 自定义 post 类型

结构将是这样的

- Material
  - Mat1
  - Mat2
- Body
  - Body1
  - Body2
- Color
  - Color1
  - Color2

我得到了这段代码,但它根本不起作用

$post_type = 'collection';
$taxonomies = get_object_taxonomies( (object) array( 'post_type' => $post_type, 'hide_empty' => true ) );

foreach( $taxonomies as $taxonomy ){
    echo $taxonomy->name;

    $terms = get_terms( $taxonomy );
    foreach( $terms as $term ){
        echo '<li>';
        echo $term->name;
        echo '</li>';
    }
}

如果您查看 get_object_taxonomies() 的文档,您会注意到一些事情,即出于您的目的,您需要将 post 类型的名称作为第一个参数传递,然后用第二个得到对象。您似乎也在混淆 get_object_taxonomies()get_terms().

的论点

还有 get_terms() 函数,如果您使用的是 WP 4.5 或更高版本,您需要在 $args 数组中传递分类法。

$taxonomies = get_object_taxonomies( 'collection', 'objects' );

foreach( $taxonomies as $taxonomy ){
    echo $taxonomy->name;

    $terms = get_terms(array(
        'taxonomy' => $taxonomy->name,
        'hide_empty' => false,
    ));

    foreach( $terms as $term ){
        echo "<li>{$term->name}</li>";
    }
}