我使用 wp_list_categories()
创建了一个菜单,但它显示的类别及其所有子项都可见。我的客户希望我让它只显示当前类别的孩子。
因此,假设我们有一个类别树:
第一类
第二类
第三类
如果有人单击第一个类别,则该类别的子类别应该可见:
第一类
- 儿童1
- 儿童2
- 儿童3
第二类
第三类
只要他点击一个子类别,例如 child1,它应该看起来像这样:
第一类
- 儿童1
- 儿童1 儿童
- 2 儿童1
- 儿童2
- 儿童3
第二类
第三类
最后,一旦他点击,例如,孩子1的孩子2:
第一类
- 儿童1
- 儿童1 儿童
- 2 儿童1
- 孩子1 的孩子
- 2 的孩子1
- 儿童2
- 儿童3
第二类
第三类
因此,例如,如果他在 3 个类别的深度,那么同一级别的所有其他类别都应该让他们的孩子不可见。一旦他选择了其中一个子类别,它应该显示它是子类别。
这让我大吃一惊,我不知道如何使用jQuery/css做到这一点。WordPress类在这里似乎毫无用处。你能帮我吗?如果可以用基本的WordPress参数来完成该wp_list_categories()
功能,那就太好了:
$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 );
li.categories .children
{
display: none;
}
li.categories .current-cat > .children,
li.categories li.current-cat-ancestor > .children
{
display: list-item;
}
这应该足够了。 :)
在第三关之后,你可能还需要jQuery,因为WordPress的错误...
jQuery(function($) {
$('.current-cat').parents('.cat-item').addClass('current-cat-ancestor');
});