内爆分类系统来隐藏父母?

时间:2012-05-14 作者:PaulB

以下代码将仅显示父分类术语的子分类术语。

$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];

1 个回复
最合适的回答,由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 因此,如果这个词有子代,它就不会被添加。

结束

相关推荐

Custom taxonomy admin page

如果要为分类法创建自定义管理页面,可以设置\'show_ui\' => false 当您注册它以抑制默认管理页,然后创建新的管理页以替换它时。然而edit-tags.php?taxonomy=taxonomy-slug 仍然会将您带到“隐藏”默认管理页面。是否有办法将其定向到自定义管理页面。或者有没有其他方法可以绕过这个问题?