【问题标题】:Adding "Active" Class to current post ancestor menu item parent in wordpress将“活动”类添加到 wordpress 中的当前后祖先菜单项父级
【发布时间】:2019-03-20 15:38:16
【问题描述】:

我在 wordpress 中有这样的菜单

  • 父项(A页)
    • 儿童物品(A类)

当我在子项(类别)页面时“current-menu-parent”类被添加到“父项” ,这非常有用。但是当我查看 Child Item ( Category ) 中的一篇帖子时,"Parent Item" 中没有添加任何特殊类。只有 "current-post-ancestor" 类被添加到 Child Item ( Category ) 。当我查看来自 子项 ( category ) 的帖子时,如何向 "父项" 添加一个类?

注意:我要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;
}

【问题讨论】:

  • 你自己尝试过什么吗?
  • 是的..我已经用我迄今为止尝试过的内容更新了这个问题..

标签: wordpress wp-nav-menu-item


【解决方案1】:

我找到了我自己的问题的答案,这就是我要找的......

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;    
}

它将向当前的后祖先菜单项父级添加一个类。

【讨论】:

    猜你喜欢
    • 2018-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多