首页 > 解决方案 > 使用 nav_menu_item_id 添加到 Wordpress 菜单 ID

问题描述

我有两个导航菜单(顶栏和主菜单),我想将文本添加到顶栏菜单的 li ID。如何在不影响主导航菜单或任何页脚菜单的情况下将文本“topbar-”添加到 li ID?

add_filter('nav_menu_item_id', 'topbar_menu_id', 10, 3);
function topbar_menu_id( $menu_id, $item, $args ) {
    if (!is_admin() && $args->theme_location == 'topbar_menu') {
        $id = apply_filters( 'nav_menu_item_id', 'topbar-menu-item-'. $item->ID, $item, $args );
        $id = $id ? ' id="' . esc_attr( $id ) . '"' : '';

        $output .= $indent . '<li' . $id . $value . $class_names .'>';
    }
}

提前致谢

标签: phpwordpressmenu-items

解决方案


如果 topbar_menu 是菜单名称,则使用此代码

 add_filter('nav_menu_item_id', 'topbar_menu_id', 10, 3);
 function topbar_menu_id( $menu_id, $item, $args ) {
     if (!is_admin() && $args->menu->name == 'topbar_menu') {
             $menu_id='topbar-'.$menu_id;
     }
         return $menu_id;
 }

否则,如果 topbar_menu 是位置名称,则使用此代码

add_filter('nav_menu_item_id', 'topbar_menu_id', 10, 3);
 function topbar_menu_id( $menu_id, $item, $args ) {
     if (!is_admin() && $args->theme_location == 'topbar_menu') {
             $menu_id='topbar-'.$menu_id;
     }
         return $menu_id;
 }

推荐阅读