0

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

它仍然不会检索那些为空的术语。我意识到我一定在这里做错了什么,需要在某个地方再次添加 hide_empty' => false

有任何想法吗?

<?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
            }
        }
    }
}
?>
4

1 回答 1

0

不明白你为什么叫$terms = get_terms( $class ); 再次启动 foreach 后,尝试回显它而不再次调用它。尝试以下操作:

<?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
            }
        }
    }
}
?>
于 2018-01-23T01:22:16.683 回答