尽管hide_empty为false,但所有自定义分类法类都未显示

时间:2018-01-22 20:44:33

标签: php wordpress taxonomy-terms

我创建了一个查询,该查询应列出自定义分类“类”中的所有术语。我知道默认情况下它没有得到空的条款,所以我添加了hide_empty'=>假的。

它仍然无法检索那些空的术语。我意识到我必须在这里做错了,需要添加hide_empty'=>在某个地方再次虚假

有什么想法吗?

<?php
$classes = get_terms( array(
    'taxonomy' => 'classes',
    'hide_empty' => false

) );

if ( $classes ) {
    foreach ( $classes as $class ) {
        $terms = get_terms( $class );
        foreach ( $terms as $term ) {
            if ( $term->parent != 0 ) {
                ?>

            <p><?php echo $term->name; ?></p>

                <?php
            }
        }
    }
}
?>

1 个答案:

答案 0 :(得分:0)

不明白为什么你在启动foreach之后再次调用 $ terms = get_terms($ class); ,尝试回复它而不再调用它。请尝试以下方法:

<?php
$classes = get_terms( array(
    'taxonomy' => 'classes',
    'hide_empty' => false

) );

if ( $classes ) {
    foreach ( $classes as $term) {
            if ( $term->parent != 0 ) {
                ?>

            <p><?php echo $term->name; ?></p>

                <?php
            }
     }

 }
?>

此外,您可以通过转储返回的变量(如下所示)来调试代码,以了解问题所在:

<?php
$classes = get_terms( array(
    'taxonomy' => 'classes',
    'hide_empty' => false

) );

if ( $classes ) {
    foreach ( $classes as $class ) {
        $terms = get_terms( $class );
        var_dump($terms); //It's probably going to be 'false'
        foreach ( $terms as $term ) {
            var_dump($term);
            if ( $term->parent != 0 ) {
                ?>

            <p><?php echo $term->name; ?></p>

                <?php
            }
        }
    }
}
?>