我在wordpress中有一个这样的菜单
当我进入子项(类别)页面时,“当前菜单项-父项” 类将添加到“父项” 中>,这非常有用。但是,当我从 Child Item (类别)查看其中一篇帖子时,没有将特殊类添加到“父项” 中。仅“当前祖先” 类添加到子项(类别)。当我查看子项(类别)中的帖子时,如何向“父项” 中添加类?
注意:我想要一个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;
}
答案 0 :(得分:0)
我找到了我自己的问题的答案,这就是我想要的..
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;
}
它将为当前后祖先菜单项父级添加一个类。