wp_nav_menuの「items_wrap」引数のドキュメントはありますか?


42

wp_nav_menuを使用していますが、サブレベルのドロップダウン用のカスタム出力を作成しようとしています。「items_wrap」引数に出くわしましたが、それが何であるか、どのように機能するのか、どのようなことができるのかについてはあまり情報がありません。

%1 $ s」および「%2 $ s」と正確に何ですか?(誰でもそれを素人の言葉で説明できますか?)

回答:


57

デフォルトのパラメーター'items_wrap'wp_nav_menu()次のとおりです。

'<ul id="%1$s" class="%2$s">%3$s</ul>' 

以下で解析されるこのaa テンプレートsprintf()

$nav_menu .= sprintf( 
    $args->items_wrap
,   esc_attr( $wrap_id )    // %1$s
,   esc_attr( $wrap_class ) // %2$s
,   $items                  // %3$s
);

番号付きのプレースホルダー–、、– %1$s%2$s、の最初の引数の%3$s引数を参照します。パーセント記号はプレースホルダー、番号は位置、タイプは文字列として扱われることを意味します。 本当に何をするのかわからない限り、タイプを変更しないでください。:)sprintf()s

  • $wrap_id'menu_id'設定されている場合はパラメータであり、設定されていない場合は'menu-' . $menu->slugです。
  • $wrap_class'menu_class'設定されている場合はパラメータです。それ以外の場合は空です。
  • $items メニューの内部コンテンツの文字列です。

を必要としないとしましょうclass。2番目の文字列を省略します。

wp_nav_menu( array( 'items_wrap' => '<ul id="%1$s">%3$s</ul>' ) );

あなたは必要としない場合classid、そして(あなたが使用しているため、あなたは別のコンテナをしたいカスタムウォーカー):

wp_nav_menu( array( 'items_wrap' => '<div>%3$s</div>' ) );

主なポイントは、次のとおりですwp_nav_menu()%3$s常にアイテムのリストです。


説明しようとしてくれてありがとう。ちょっと見ましたが、うまくいきません。私のliアイテムにクラスを追加したいと思います。各アイテムにulを使用しているようですか?コードにもsprintfが表示されないため、明確ではありません。
着陸

1
@landedこれは、各項目ではなく、メニュー全体用です。私たちの検索を使用してください、私たちはあなたの問題の既存の解決策を持っています。
FUXIA

私はウェブを検索しましたが、他の人はウォーカークラスを拡張し、そこに私のHTMLを追加するのに必要な同じ問題がありましたが、これは私のためにうまくいきましたが、古いクラスからかなりのコードをコピーし、名前を変更して変更してから設定する必要がありましたカスタムウォーカークラスを使用するメニュー。ありがとう
着陸

私はパーティーに少し遅れているかもしれませんが、あなたがそれをitems_wrapどのように国際化するかについてテキストを紹介したい場合は?
ヘンリーライト

@henrywright最初に値を変換し、文字列に渡します。
FUXIA

0

私が収集したものから出力を取得し、メニュー名でIDとクラスをliに与えます。そのため、特定のメニューのスタイルを設定する場合、スタイルを設定する場合は、そのIDまたはクラスを取得します。1と2は異なる出力です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.