WordPress - 仅显示访问类别的子项

时间:2014-12-08 14:38:54

标签: php jquery wordpress

我已使用wp_list_categories()创建了一个菜单,但它显示了所有子项都可见的类别。我的客户希望我让它只显示当前类别的孩子。

所以,让我们说我们有一个类别树:

第一类

第二类

第三类

如果有人点击了第一个类别,那么该类别的孩子应该可见:

第一类

  • child1
  • 的child2
  • child3

第二类

第三类

一旦他点击子类别,例如child1,它应该如下所示:

第一类

  • child1
    • child1的child1
    • child1的child2
  • 的child2
  • child3

第二类

第三类

最后,一旦他点击,例如,child1的child2:

第一类

  • child1
    • child1的child1
    • child1的child2
      • child1的child2的child1
  • 的child2
  • child3

第二类

第三类

因此,如果他在3个类别的深度,那么同一级别的所有其他类别应该让他们的孩子看不见。一旦他选择了其中一个子类别,它就应该显示它的孩子。

这让我大吃一惊,我不知道如何用jQuery / css做到这一点。 WordPress类在这里似乎没用。你能帮帮我吗?如果可以使用wp_list_categories()函数的基本WordPress参数来完成它,那就太棒了:

$args = array(
'show_option_all'    => '',
'orderby'            => 'name',
'order'              => 'ASC',
'style'              => 'list',
'show_count'         => 0,
'hide_empty'         => 0,
'use_desc_for_title' => 1,
'child_of'           => 0,
'feed'               => '',
'feed_type'          => '',
'feed_image'         => '',
'exclude'            => '',
'exclude_tree'       => '',
'include'            => '',
'hierarchical'       => 1,
'title_li'           => __( '' ),
'show_option_none'   => __( 'No categories' ),
'number'             => null,
'echo'               => 1,
'depth'              => 0,
'current_category'   => 0,
'pad_counts'         => 0,
'taxonomy'           => 'category',
'walker'             => null
);
wp_list_categories( $args ); 

1 个答案:

答案 0 :(得分:1)

li.categories .children
{
  display: none;
}
li.categories .current-cat > .children,
li.categories li.current-cat-ancestor > .children
{
  display: list-item;
}

这应该足够了。 :)

在第3级之后,由于WordPress错误,你可能还需要jQuery ...

jQuery(function($) {
  $('.current-cat').parents('.cat-item').addClass('current-cat-ancestor');
});