我在wordpress中有这样的菜单
- 父项 ( A 页 (
- 子项 ( A 类别 (
当我在子项(类别(页面中时,">当前菜单父"类被添加到"父项">中,这非常有用。但是当我查看子项目(类别(中的一篇文章时,没有将特殊类添加到"父项目">中。只有"当前后祖先">类被添加到子项(类别(中。当我查看子项目(类别(的帖子时,如何将类添加到"父项目">?
注意:我想要一个PHP解决方案,不接受Javascript/Jquery解决方案。
更新:
这就是我目前所拥有的。但它正在向所有具有子项的父项添加类。
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->current_item_ancestor) {
$parents[] = $item->menu_item_parent;
}
}
foreach ( $items as $item ) {
if ( in_array( $item->ID, $parents ) ) {
$item->classes[] = 'active';
}
}
return $items;
}
我已经找到了我自己问题的答案,这就是我正在寻找的..
add_filter( 'wp_nav_menu_objects', 'add_menu_parent_class' );
function add_menu_parent_class( $items ) {
$parents = array();
foreach ( $items as $item ) {
if ( in_array('current-post-ancestor', $item->classes) ) {
$parents[] = $item->menu_item_parent;
}
}
foreach ( $items as $item ) {
if ( in_array( $item->ID, $parents ) ) {
$item->classes[] = 'current-menu-ancestor';
}
}
return $items;
}
它将向当前帖子祖先菜单项父级添加一个类。