私はそれが属性をwpナビゲーションメニュー項目に添付することが可能であるかどうか把握しようとしています。
説明するために、このphp:
<?php
wp_nav_menu(array(
'menu' => 'main',
'container' => false
));
?>
以下のようなメニューを出力します。
<ul id="menu-main" class="menu">
<li id="menu-item-01" class="menu-item">Menu 01</li>
<li id="menu-item-02" class="menu-item">Menu 02</li>
<li id="menu-item-03" class="menu-item">Menu 03</li>
<li id="menu-item-04" class="menu-item">Menu 04</li>
</ul>
しかし、私が実際に欲しいのはこのようなものです。
<ul id="menu-main" class="menu">
<li id="menu-item-01" class="menu-item" data-hook="01">Menu 01</li>
<li id="menu-item-02" class="menu-item" data-hook="02">Menu 02</li>
<li id="menu-item-03" class="menu-item" data-hook="03">Menu 03</li>
<li id="menu-item-04" class="menu-item" data-hook="04">Menu 04</li>
</ul>
それは実現可能ですか?属性はdata-hook
である必要はありません。これは例として使用しているだけで、識別子として使用できるものだけです。
カスタムウォーカーを使用してメニュー項目に属性を追加できます。
基本的には、wp_nav_menu()オプションにパラメータ 'walker'を追加して、拡張クラスのインスタンスを呼び出します。
wp_nav_menu(
array (
'menu' => 'main-menu',
'container' => FALSE,
'container_id' => FALSE,
'menu_class' => '',
'menu_id' => FALSE,
'depth' => 1,
'walker' => new Description_Walker
)
);
クラスDescription_Walker
はWalker_Nav_Menu
を拡張し、関数start_el( &$output, $item, $depth, $args )
を変更します。
コーデックスから:
http://codex.wordpress.org/Function_Reference/wp_nav_menu#Using_a_Custom_Walker_Function
私はこのチュートリアルを見つけました、あなたはそれが非常に役に立つと思うかもしれません:
http://www.kriesi.at/archives/improve-your-wordpress-navigation-menu-output