我用wp_nav_menu创建了一个wordpress菜单。
我的结构如下:
如果我在“类别”中打开帖子,则菜单的顶层没有“当前”类 - 仅在“类别”上。仅与页面嵌套在多级菜单上工作正常。
有没有办法解决这个问题?
答案 0 :(得分:2)
1)编写自定义助行器http://codex.wordpress.org/Function_Reference/wp_nav_menu#Using_a_Custom_Walker_Function以在调用该类别时添加当前类;
2)或者,(不是最优雅的):找到您想要的菜单项的页面ID - 在下面的示例中为1000
- 要突出显示为当前,请选择该类别 - is_category
- 然后使用jQuery:
addClass
<?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 } ?>
答案 1 :(得分:0)
啊......在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;
}