在 WordPress 中获取自定义 post 类型的自定义分类列表

Get custom taxonomy list on custom post type in WordPress

我正在使用 WordPress 4.7 并为其创建了自定义 post 类型和自定义分类。 我的自定义 post 类型是 'products',自定义分类法是 'type'。 为了获得 'type' 的所有分类法,我使用了以下代码。

<?php
   $terms = get_terms( 'type' );
   foreach ( $terms as $term ) {
    echo '<p>' .$term->name. '</p>';
   }
?>

但是它返回的是空数组,所以我努力学习寻找答案并找到了提示。 我已经通过 get_terms('type') 函数检查了执行的查询。 他们执行了两个重要的查询。

第一次查询

SELECT    t.*, tt.* FROM wp_terms AS t    INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy IN ('type') ORDER BY t.name ASC

下一个查询

SELECT term_id, meta_key, meta_value FROM wp_termmeta WHERE term_id IN (10,11) ORDER BY meta_id ASC

我明白它返回空数组的原因。 termmeta是从WordPress4.4开始提供的,我用的是WordPress4.7。 由于第二次查询,它返回空查询。 但是现在我仍然找不到合适的函数来为我的产品自定义 post 类型获取所有自定义分类法。 我会很高兴有人告诉我如何在 WordPress4.7 中做到这一点 我不能只为它使用较低版本。 谢谢

get_terms 建议添加一个数组作为参数。
在过去,第一个论点是分类问题。现在不是了。这应该无关紧要,但它仍然可能是最好的起点。

<?php
$terms = get_terms( array(
    'taxonomy' => 'type',
) );

试试这个代码

<?php
    $terms = get_terms( array(
                'taxonomy' => 'type'
            ));
    print_r($terms);

    foreach($terms as $term) {
        echo '<p>'.$term->name.'</p>';
    }
?>

您可以在 here

查看 get_terms() 的更多详细信息