不完全确定您在问什么,但如果我理解正确,您希望对返回值执行一些测试,以避免重复WP_Error
对象,并可能以某种方式处理错误。
根据documentation get_terms()
将返回术语对象数组或false
如果没有找到对象,但通过查看源,如果分类法不存在或在某些情况下为空数组,它将返回一个WP\\u错误对象。
因此,要检查错误,必须检查返回值是否匹配false
, 空数组(array()
) 或aWP_Error
对象使命感empty($terms)
将解释前两个,以及is_wp_error($terms)
可用于测试返回值是否为错误对象。执行此类测试时,可以使用类似的方法:
$taxonomyName = "hhie_artists";
//Call top layer terms only (by setting Parent to 0).
$parent_terms = get_terms($taxonomyName, array(\'parent\' => 0, \'orderby\' => \'slug\', \'hide_empty\' => true));
if (!empty($parent_terms) && !is_wp_error($parent_terms)) {
echo \'<ul>\';
foreach ($parent_terms as $pterm) {
//Get the Child terms
$terms = get_terms($taxonomyName, array(\'parent\' => $pterm->term_id, \'orderby\' => \'slug\', \'hide_empty\' => true));
if (!empty($terms) && !is_wp_error($terms)) {
foreach ($terms as $term) {
echo \'<li><a href="\' . get_term_link( $term->name, $taxonomyName ) . \'">\' . $term->name . \'</a></li>\';
}
}
}
echo \'</ul>\';
}
然而,WordPress中已经有一个功能可用于打印这样的类别树。它叫
wp_list_categories
我强烈建议你用它来代替。方法如下:
wp_list_categories(array(
\'title_li\' => null, // We don\'t need the automatically generated heading
\'depth\' => 1, // Judging from your code you only want to print one level of terms
\'orderby\' => \'slug\',
\'taxonomy\' => \'hhie_artists\',
));
结果应遵循以下结构:
母艺人A子艺人A1子艺人A2子艺人A3子艺人B子艺人B1子艺人B2子艺人