我正在以这种方式在我的网站中设置变量:
$args = array('parent' => 2818,'hide_empty' => false);
$best_of_cat_child_terms = get_terms( $args ); -> (functions.php:26)
$best_of_cat = $best_of_cat_child_terms;
问题是我也遇到了这个php错误:
警告:
Invalid argument supplied for foreach()
位置:
wp-includes/class-wp-term-query.php:373
致电堆栈:
WP_Term_Query->get_terms()
wp-includes/class-wp-term-query.php:287
WP_Term_Query->query()
wp-includes/taxonomy.php:1217
get_terms()
wp-content/themes/theme-child/functions.php:26 (-> functions.php line 26 marked above)
我是以正确的方式设置的吗?
答案 0 :(得分:3)
您可以使用is_wp_error()
,
$terms = get_terms( array(
'taxonomy'=> 'category',
'parent' => 2818,
'hide_empty' => 0)
);
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
echo '<ul>';
foreach ( $terms as $term ) {
echo '<li>' . $term->name . '</li>';
}
echo '</ul>';
}
else{
$error_string = $terms->get_error_message();
echo '<div id="message" class="error"><p>' . $error_string .'</p></div>';
}
关于您在评论中说的错误,看起来您似乎没有使用4.5以下的WordPress版本?
在4.5.0之前,get_terms()的第一个参数是分类法或分类法列表:
$terms = get_terms( 'post_tag', array( 'hide_empty' => false, ) );
从4.5.0开始,分类法应该通过$ args数组中的'taxonomy'参数传递:
$terms = get_terms( array( 'taxonomy' => 'post_tag', 'hide_empty' => false, ) );
在您的情况下,从$ args和
中删除taxonomy
$terms = get_terms('category', $args);
答案 1 :(得分:0)
提供taxonomy
arg:
$args = array(
'taxonomy' => 'your_taxonomy',
'parent' => 2818,
'hide_empty' => false
);