2

ナビゲーションメニューをデザインしようとしているtwitterブートストラップでワードプレスを使用しています...

私は呼び出し、その中で関数リファレンス/ wp navメニューwp_nav_menuに記載されている関連パラメータを定義しました...

私がやろうとしているのは、たとえばコンテナメニューに複数のクラスを追加することです:-

wp_nav_menu( array( 
    'menu_class' => 'class1 class2 class3', 
    'container_class' => 'nav-collapse collapse',
) );

まったく機能しません。ブラウザは実際にmenu-menu-containerクラスを表示します...container_class

それを機能させるためのトリックは何ですか?私は何か間違ったことをしていますか?

4

1 に答える 1

3

Wordpressは、デフォルトでメニュー クラス名を拡張します。

... class="menu-'. $menu->slug .'-container"';

ソース: http://core.trac.wordpress.org/browser/trunk/wp-includes/nav-menu-template.php#L202

独自のwalker クラスを使用できます。実際には (HTML を生成するという意味で) 何も「実行」しません。ツリーの各ブランチをトレースするだけです。遭遇する各要素に対して何をすべきかを指示する他のクラスによって拡張する必要があります。

WordPress には、次のような独自の拡張クラスが用意されています。

  • Walker_Nav_Menu– ナビゲーション メニューの HTML を表示するため
  • Walker_Page– ページのリストを表示するため
  • Walker_Category– 分類用語のリストを表示します。

例:

$walker = new Custom_Walker_Menu();

wp_nav_menu( array( 
    'menu_class' => 'class1 class2 class3', 
    'container_class' => 'nav-collapse collapse',
    'walker' => $walker
) );

リファレンスをお読みください: Class Reference/Walker

実装するカスタム WordPress nav walker クラスが多数あります。このリポジトリを確認してください。

于 2013-08-06T06:36:27.117 に答える