1

我用 wp_nav_menu 创建了一个 wordpress 菜单。

我的结构看起来像:

    • 类别

如果我在“类别”中打开一个帖子,菜单的顶层没有“当前”类别——只有“类别”。仅嵌套页面在多级菜单上效果很好。

有没有办法解决这个问题?

4

2 回答 2

2

1) 编写自定义walker http://codex.wordpress.org/Function_Reference/wp_nav_menu#Using_a_Custom_Walker_Function以在调用该类别时添加当前类;

2)或者,(不是最优雅的):找到您想要的菜单项的页面 ID -1000在下面的示例中 - 突出显示为当前,选择该类别 - is_category- 然后添加当前类 - addClass- 使用 jQuery:

<?php if (is_category('my-category')) { ?>

    <script type="text/javascript">

        jQuery(function($) {
        $(document).ready(function() {
        $('#menu-main-menu li.menu-item-1000').addClass('current-menu-item');
        }); });

        </script>

    <?php } ?>
于 2013-08-09T18:56:59.720 回答
1

啊...在wordpress codex中找到了解决方案。这对我来说很好:

add_filter( 'wp_nav_menu_objects', 'add_menu_parent_class' );
function add_menu_parent_class( $items ) {

    $parents = array();
    foreach ( $items as $item ) {
        if ( $item->menu_item_parent && $item->menu_item_parent > 0 ) {
            $parents[] = $item->menu_item_parent;
        }
    }

    foreach ( $items as $item ) {
        if ( in_array( $item->ID, $parents ) ) {
            $item->classes[] = 'menu-parent-item'; 
        }
    }

    return $items;    
}
于 2013-08-09T22:31:55.690 回答