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

时间:2018-11-22 01:34:55

标签: wordpress custom-post-type custom-taxonomy

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

收藏 =自定义帖子类型

  • 材料 =分配给“收藏”的自定义分类法

    • Mat1 =术语
    • Mat2 =术语
  • 正文 =分配给“集合”的自定义分类法

    • Body1 =词条
    • Body2 =词条
  • 颜色 =分配给“收藏”的自定义分类法

    • 颜色1 =词条
    • Color2 =词条

结构将是这样

- 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>';
    }
}

1 个答案:

答案 0 :(得分:1)

如果您查看get_object_taxonomies()的文档,则会注意到几件事,即出于您的目的,您希望将帖子类型的名称作为第一个参数传递,并使用第二。看来您正在混淆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>";
    }
}