【问题标题】:Wordpress wp_nav_menu()WordPress wp_nav_menu()
【发布时间】:2012-09-17 06:17:46
【问题描述】:

我正在尝试构建一个 WordPress 菜单,但无法删除赋予 li 的默认 ID。我已成功使用 $menu_id 和 $menu_class 重命名 ul id 和类,但似乎无法弄清楚 li 的情况。

我需要我的菜单看起来像

<ul id="menubar">   
<li><a href="/" class="main home active">Home</a></li>
    <li><a href="About_us" class="main about-us">About Us</a></li>
<li><a href="Mission" class="main mission">Mission</a></li>
</ul>

而不是

<ul id="menubar" class="">
     <li id="menu-item-7" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-4 current_page_item menu-item-7"><a href="#">Test</a></li>

谢谢

【问题讨论】:

    标签: wordpress wordpress-theming


    【解决方案1】:

    查看nav_menu_item_id 过滤器。在wp-includes/nav-menu-template.php中使用如下:

        $id = apply_filters( 'nav_menu_item_id', 'menu-item-'. $item->ID, $item, $args );
        $id = $id ? ' id="' . esc_attr( $id ) . '"' : '';
    
        $output .= $indent . '<li' . $id . $value . $class_names .'>';
    

    这意味着您只需添加一个函数来返回一个“虚假”值,以防止生成 ID 属性。为此,只需将以下内容添加到您主题的functions.php

    function mytheme_remove_nav_menu_item_id( $id ) {
        return false;
    }
    add_filter( 'nav_menu_item_id', 'mytheme_remove_nav_menu_item_id' );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-05
      • 2011-10-31
      • 2014-11-03
      • 1970-01-01
      • 2014-12-15
      • 2019-08-16
      • 2014-02-23
      • 1970-01-01
      相关资源
      最近更新 更多