【问题标题】:Show child category name ONLY inside the loop仅在循环内显示子类别名称
【发布时间】:2016-10-11 07:27:38
【问题描述】:

下面的代码适用于我来自自定义帖子类型(称为Sermon)的帖子,它仅显示子类别名称及其链接。

<?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>';
  }
?>

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

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

【问题讨论】:

  • print_r($categories) chk 这个
  • 我已经尝试更改对象名称,但它确实一直在某些帖子上显示父标签。如果不使用自定义函数无法实现,我希望有人可以帮助我为此创建一个函数。 :)

标签: php wordpress roots-sage


【解决方案1】:

我已经用我找到的这个自定义函数解决了我的问题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;
}

并在循环(content.php)中调用这个函数the_category_children('category_name')。 ^_^

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-07
    • 1970-01-01
    • 2012-09-18
    • 2022-01-04
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多