仅在循环内显示子类别名称

时间:2016-10-11 07:27:39

标签: php wordpress roots-sage

以下代码适用于来自自定义帖子类型(称为讲道)的帖子,该帖子仅显示子类别名称及其链接。

<?php
  $categories = get_the_category();
  if ( ! empty( $categories ) ) {
  echo '<a href="' . esc_url( get_category_link( $categories[0]->term_id ) ) . '">Child Category : ' . esc_html( $categories[0]->name ) . '</a>';
  }
?>

但是当我从帖子类型本身(新闻类别)重新使用它时,它不起作用。它会一直显示父类别(新闻),除非我取消选中它,因此它只显示子类别(如娱乐,政治等)。

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

我已经使用我发现online的自定义函数解决了我的问题,并进行了一些修改以满足我的要求。

function the_category_children($slug=""){
  $separator = ', ';
  $output = '';
  if($categories       = get_the_category()):
    if($slug_category   = get_category_by_slug($slug)):
      foreach($categories as $category):
        if (cat_is_ancestor_of($slug_category, $category)):
          $output .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '">' . esc_html( $category->name ) . '</a>' . $separator;
        endif;
      endforeach;
      echo trim( $output, $separator );
    endif;
  endif;
}

在循环内部调用此函数the_category_children('category_name')(content.php)。 ^ _ ^