カスタムメニューの出力について
-
Twentytenのテーマで、
複数カスタムメニューを設置しています。
カスタムメニューを使用しない場合は<div class="menu"> <ul> <li > <a href="#" title="ホーム">ホーム</a> </li> </ul> </div>と出力され、
カスタムメニューを設定した場合は<div class="menu-header"> <ul id="menu-カスタムメニュー名" class="menu"> <li > <a href="#" title="ホーム">ホーム</a> </li> </ul> </div>となりますが、
カスタムメニューを使用しない場合において
<div class=”menu”>のところで<div class=”menu-1″>となどと別のクラスを出力する方法があれば…と思い書き込みさせていただきました。
どなたかご教示いただければ幸いです。
-
wp_nav_menu に、container_class 設定項目があります。
‘container_class’ => ‘menu-1’
とすれば良いでしょう。php-webさん
ありがとうございます。パラメータでは
'container_class' => 'menu-nav2', 'menu_id' => 'menu-ul-nav2'
などとしております。
なのでカスタムメニューを設定している際はの出力は
<div class="menu-nav2"><ul id="menu-ul-nav2" class="menu">
となっております。設定している場合の指定は特に問題ないのですが、
設定していない場合の
<ul id=”menu-ul-nav2″ class=”menu”> の class=”menu” は
上記表題の <div class=”menu”> のようにリストタグの前に出力されます。
この設定していない場合 <div class=”menu”> に対して、
<div class=”menu-1″> などと連番をつけて独立させたいと考えておりました。このような形にしたかった理由として、
テーマ内では複数カスタムメニューを設置している為、
カスタムメニューを設定していない場合に対する
個々のメニューのスタイルを分けたかったことが理由となってます。
一応CSSの記述は多くなってしまいますが、現在希望の形にはなっております。
もし <div class=”menu-1″> などとできる方法があればと思い
書き込ませていただきました。wp_nav_menu を設定していないと、(デフォルトでは)wp_page_menu を呼び出すようなので、
http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/wp_page_menu未検証ですが、functions.php の編集で書き換えできると思います。
`function twentyten_page_menu_args( $args ) {
$args[‘show_home’] = true;
$args[‘menu_class’] = ‘menu-1’;
return $args;
}
add_filter( ‘wp_page_menu_args’, ‘twentyten_page_menu_args’ );上記はmenu-1決めうちです。もし連番を割り当てたいのであれば、かなり面倒だと思います。
php-webさん
ありがとうございます。問題なく反映されていました。※<div class=”menu-1″>
ありがとうございました!
これで、CSSの配慮も少し軽減されます。
ちなみに、決めうちで menu-2 や menu-3 などと
追加指定することはできるのでしょうか??
PHPに明るくないものですいません。上のfunctions.phpを編集するところで、
$args[‘menu_class’] = $args[‘container_class’];
とすれば、wp_nav_menuのcontainer_classを引き継ぐ(カスタムメニューを使わない場合も、カスタムメニュー用に設定したclassを反映させる)ことができるようです。
このやり方が標準的な方法かどうかまでは確認していませんけど。
トピック「カスタムメニューの出力について」には新たに返信することはできません。