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