0

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>

ありがとう

4

1 に答える 1

0

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' );
于 2012-09-16T22:17:46.860 に答える