我创建了一个查询,该查询应列出自定义分类“类”中的所有术语。我知道默认情况下它没有得到空的条款,所以我添加了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
}
}
}
}
?>
答案 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
}
}
}
}
?>