如何动态向WordPress指定菜单menu-4的开头添加新菜单项?
代码不生效的核心原因
- 你混淆了WordPress导航菜单钩子的动态匹配规则:
wp_nav_menu_{$menu_slug}_items这个变体钩子的动态参数是后台创建的菜单别名(slug),不是你注册的主题位置(theme_location)的别名menu-4,因此匹配不到对应的菜单。 - 现有代码用
.=是把新菜单项追加到菜单末尾,不符合你要插入到最开头的需求。 - 需确认后台「外观-菜单」页面中,已经有至少一个菜单被分配到了
Shopify Nav(也就是你注册的menu-4)这个主题位置,没有分配的情况下钩子不会触发。
正确实现代码
把你写的过滤代码替换为以下内容即可:
add_filter( 'wp_nav_menu_items', 'prefix_add_menu_item_to_shopify_nav', 10, 2 ); function prefix_add_menu_item_to_shopify_nav( $items, $args ) { // 仅匹配主题位置为menu-4的菜单 if ( $args->theme_location === 'menu-4' ) { // 定义要插入的新菜单项,根据需要修改链接、文字、class即可 $new_item = '<li class="menu-item custom-menu-item"><a href="你要跳转的链接地址">新菜单项显示文字</a></li>'; // 插入到菜单最开头 $items = $new_item . $items; } return $items; }
内容的提问来源于stack exchange,提问作者Chad Warren
相关产品推荐
相关产品推荐

