Все пользовательские классы таксономии не отображаются, несмотря на то, что hide_empty имеет значение false

Я создал запрос, в котором должны быть перечислены все мои термины из пользовательских классов таксономии. Я знаю, что по умолчанию он не получает пустые термины, поэтому я добавил 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
            }
        }
    }
}
?>

1 ответ

Не понимаю, почему вы назвали $term = 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
            }
        }
    }
}
?>
Другие вопросы по тегам