【问题标题】:How can I dynamically add a new menu item to the beginning of a specific WordPress menu?如何将新菜单项动态添加到特定 WordPress 菜单的开头?
【发布时间】:2021-10-15 22:02:54
【问题描述】:

我在我的 WordPress 主题中注册了 4 个菜单。

register_nav_menus( array(
    'menu-1' => esc_html__( 'Primary', 'honeycomb' ),
    'menu-2' => esc_html__( 'Mobile Cat Products', 'honeycomb' ),
    'menu-3' => esc_html__( 'Top Bar', 'honeycomb' ),
    'menu-4' => esc_html__( 'Shopify Nav', 'honeycomb' ),
) );

我需要在 menu-4 的 开头 处动态插入一个新的菜单链接据我了解,只需传入主题位置名称,就可以使用 wp_nav_menu_items 的变体过滤特定菜单的菜单。在我的例子中是“menu-4”。

add_filter( 'wp_nav_menu_menu-4_items', 'prefix_add_menu_item', 10, 2 );

function prefix_add_menu_item ( $items, $args ) {
   $items .=  '<li class="menu-item">My New Item Here</li>';

   return $items;
}

但是这不起作用。我不确定我在这里缺少什么。

【问题讨论】:

    标签: wordpress menu wp-nav-menu-item


    【解决方案1】:

    $menu-&gt;slug 这里 apply_filters( "wp_nav_menu_{$menu-&gt;slug}_items", $items, $args ); 不是导航菜单 ID...它是菜单名称 slug...就像这里我将我的菜单命名为 Main Menu 所以 slug 变成 main-menu 所以你的过滤器会成为...

    add_filter( 'wp_nav_menu_main-menu_items', 'so68759013_add_menu_item', 10, 2 );
    
    function so68759013_add_menu_item( $items, $args )
    {   
      $items .=  '<li class="menu-item">My New Item Here</li>';
    
      return $items;
    }
    

    【讨论】:

      猜你喜欢
      • 2012-10-24
      • 1970-01-01
      • 2018-11-24
      • 2014-05-02
      • 2013-04-23
      • 1970-01-01
      • 1970-01-01
      • 2013-03-24
      • 1970-01-01
      相关资源
      最近更新 更多