以下代码将仅显示父分类术语的子分类术语。
$terms = get_the_terms($wp_query->post->ID, \'propertytype\');
$props = array();
foreach ($terms as $term) {
if ($term->parent)
$props[] = $term->name;
}
echo implode(\', \', $props);
例如:London(父)、West London(子)-上述内容仅与West London(子)相呼应。
但是,如果有多个子女级别,例如伦敦(父母)、西伦敦(子女)、切尔西(孙子女)
这行不通!我只想显示最后一个术语。
How would i modify the above to only display the last term even if there is more than one sub level?
谢谢
保罗
FINAL CODE USED
$terms = get_the_terms($wp_query->post->ID, \'propertytype\');
//die(print_r($terms));
$props = array();
foreach ($terms as $term) {
$hasChildrenTest = get_term_children($term->ID, \'propertytype\');
if ($term->parent) {
if (empty($hasChildrenTest) && !is_wp_error($hasChildrenTest)) {
$props[] = $term->name;
}
}
}
echo $props[0];
最合适的回答,由SO网友:moraleida 整理而成
在将结果项添加到数组之前,可以检查其是否有子项:
$terms = get_the_terms($wp_query->post->ID, \'propertytype\');
$props = array();
foreach ($terms as $term) {
$hasChildrenTest = get_term_children($term->ID, \'propertyType\');
if ($term->parent) {
if (empty($hasChildrenTest) && !is_wp_error($hasChildrenTest)) {
$props[] = $term->name;
}
}
echo implode(\', \', $props);
ps: 这个
if($term->parent)
在此之后,测试可能变得不必要。看看你是否真的需要它。
edit: 我的错误->应该是empty $hasChildrenTest
而不是!empty $hasChildrenTest
因此,如果这个词有子代,它就不会被添加。