显示父类别和子类别,但不显示子类别

时间:2017-12-16 作者:Anda

我正在努力在类别页面上显示仅限于父级直接子级的子类别。。。我希望有人能帮我:)

我有工作代码-当选择当前类别时,它会显示其所有子类别。。。但也包括孙子女等等。。。

<?php
  $category_id = get_query_var( \'cat\' ); // Get current catgory ID
  $category = get_term( $category_id, \'category\' ); // Fetch category term object

  $parent = $category->parent ? $category->parent : 
  $category_id;

  $args = array(
     \'show_count\' => false,
     \'hide_empty\' => true,
     \'title_li\' => \'\',
     \'show_option_none\' => \'\',
     \'echo\' => false
     );

     // Show the children of parent category
     if ( $category->parent ) {
       $args[\'child_of\'] = $category->parent;
       //$args[\'exclude\'] = $category_id; // Don\'t display the current category in this list
    }
    else {
      $args[\'child_of\'] = $category_id;
    }

    // Get the category list
    $categories_list = wp_list_categories( $args );
    if ( $categories_list ) {?>
      <div class="subcategory-wrapper">
        <ul class="menu">
          <?php echo $categories_list; ?>
        </ul>
      </div>
    <?php } ?>
如何仅显示当前父类别的直接子类别?

我现在看到的是上述代码:

===选择的当前类别页面(父级)===

儿童01

  • 孙辈01
    • 子女02

      孙子女01

      孙子孙女01

      儿童04

      我想看的内容(即使父类别有孙子):

      ===选择的当前类别页面(父级)===

      儿童01

      儿童02

      儿童03

      儿童04

    更新:

    要隐藏大子类别,请将$args数组更改为:

     $args = array(
     \'show_count\' => false,
     \'hide_empty\' => true,
     \'depth\'=>1,
     \'title_li\' => \'\',
     \'show_option_none\' => \'\',
     \'echo\' => false
     );
    
    另一个问题是,他的代码在帖子页面上不起作用,而只在归档/分类页面上起作用。

    Is there a way to get the same result - show direct children of the parent category to which the post belongs - on the post page?

    这是我现在在帖子页面上看到的内容:

    父类别=

    在此处发布内容

    =======

    This is what I want to have on the post page (->我想像上面的代码那样显示父类别的直接子类别…但遗憾的是,此代码在贴子页上不起作用):

    父类别

    Child 01(该帖子属于此子类别)

    子类别02(帖子不属于此子类别,但会显示出来,因为它是父类别的子类别)

    子03(帖子不属于此子类别,但会显示出来,因为它是父类别的子类别)等。

===

在此处发布内容

=======

有什么想法吗?

1 个回复
最合适的回答,由SO网友:Shibi 整理而成

在一篇文章中,你可以得到这样的父类别

$category = wp_get_object_terms(get_the_ID(), \'category\', array(\'parent\'=>0));

$args = array(
 \'show_count\' => false,
 \'hide_empty\' => true,
 \'title_li\' => \'\',
 \'show_option_none\' => \'\',
 \'echo\' => false,
 \'depth\' => 1
 );


$args[\'child_of\'] = $category[0]->term_id;

// Get the category list
$categories_list = wp_list_categories( $args );
if ( $categories_list ) {?>
  <div class="subcategory-wrapper">
    <ul class="menu">
      <?php echo $categories_list; ?>
    </ul>
  </div>
<?php } ?>

结束

相关推荐

WP_LIST_CATEGORIES()-将div添加到每个li?

我正在使用wp_list_categories() 从特定的作者ID打印出每个类别的链接,这很好。然而,我还想添加一个div 致各li 将保留类别的图标。我怎样才能做到这一点?这是我当前的代码:<?php // Display a list of all categories associated with author $cat_array = array(); $args = array( \'author\' =>