MEDIAWordPressアドセンスSearchConsoleアナリティクスレンタルサーバードメインWordPressのwp_nav_menuに使用するパラメータの使い方2020.02.09WordPress使い方WordPress関数HOMEWordPressWordPress使い方WordPressのwp_nav_menuに使用するパラメータの使い方WordPressを使用したサイトにカスタムメニューやナビゲーションメニューを表示するにはwp_nav_menuでテーマに設定したメニューを表示します。表示したメニューにはwp_nav_menuのパラメータを使うことができてwp_nav_menuが出力するメニューのマークアップ構造をカスタマイズすることが可能です。wp_nav_menuのパラメータで渡せる種類は16個くらいあるのでwp_nav_menuでナビゲーションメニューをサイトに表示する基本的に必要なパラメータから、カスタマイズするときに役立ちそうなパラメータまで、一つずつ覚えておくことができるようにしたいと思います。まとめwp_nav_menuのパラメータの基本的な使い方WordPressのカスタムメニューはregister_nav_menus()かregister_nav_menu()でテーマ機能を有効にしてwp_nav_menuのtheme_locationパラメータが与えられたときに、theme_locationが示す位置へ割り当てられたメニューを表示できます。このときに、セットしたメニュー表示をするだけならばwp_nav_menuのパラメータでtheme_locationを使用して、値にメニュー位置の指定を渡せば表示できます。?>パラメータのtheme_location以外のパラメータも使用する場合は、上記のtheme_locationパラメータと値の下にwp_nav_menuで渡せる他のパラーメータをセットしていきます。theme_locationパラメータは使用することが多くなると思うので使い方の基本として覚えておくといいかと思い先に紹介しました。Advertisement次からtheme_locationも含めてwp_nav_menuのパラメータを一つずつ説明していきます。wp_nav_menuのパラメータの使い方を一つずつ説明WordPressの日本語Codexでもwp_nav_menuのパラメータの「デフォルト値を明示した使い方」の説明があります。以下のパラーメータがWordPressの日本語Codexでも紹介されているwp_nav_menuのパラメータの種類です。);?>ざっと見た限りでは種類の多さを感じますが、wp_nav_menuが出力したメニューにマークアップしているHTMLタグの変更をして、メニューをCSSでデザインするためにタグのカスタマイズができるパラメータの割合が多いです。パラメータ名にmenuがつくものなら、メニューリストをマークアップするulタグのカスタマイズパラメータ名にcontainerがつくものなら、メニューリストをマークアップするコンテナ要素のカスタマイズパラメータ名にbeforeとafterがつくものなら、リストの前後やテキストリンクの前後にコンテンツ挿入できるカスタマイズのように数多いパラメーターでもカスタマイズするタグごとのグループに分けることができるので、グループにして覚えてしまうといいかもしれません。theme_locationでカスタムメニューの位置を決める冒頭でも説明しましたが、wp_nav_menuのパラメータで「theme_location」は、WordPressのメニュー設定でセットしたメニューの位置を示すパラメータです。register_nav_menuかregister_nav_menusでカスタムメニューを追加して、識別子の値を指定してあることが前提です。?>wp_nav_menuのパラメータ「theme_location」の使い方は、配列でarrayの中で左側にパラメータtheme_locationを指定、右側にはtheme_locationで表示位置を値として渡します。この右側に指定する値がregister_nav_menuかregister_nav_menusで登録したtheme_locationのキーと合わせます。menuが付くwp_nav_menuのパラメータwp_nav_menuのパラメータ名でmenuが付くパラメータは3つあります。menumenu_classmenu_idまずはパラメータ「menu」の使い方からです。menuパラメータを使うことで管理画面の外観から進んだ「メニュー」で設定したメニューの表示ができます。これは設定したカスタムメニューをtheme_locationのパラメータを使わない場合の代わりにする使い方できます。?>menuパラメータの値に指定するのは、外観のメニューを開いたそれぞれに設定しているメニューの名前を使用します。メニューの名前を指定すると、そのメニューがメニュー位置に表示できます。メニュー名で簡単に扱えますが、個人的にはmenuパラメータではなくtheme_locationのパラメータでメニュー登録をすることが多いです。Advertisement次にwp_nav_menuパラメータの「menu_class」の使い方です。menu_classはwp_nav_menuで出力された要素の中のul要素に任意のクラス属性を付与できます。以下のコードのようにmenu_classをキーにして任意のクラス名を指定します。?>そしてwp_nav_menuパラメータ「menu_id」は、wp_nav_menuで出力された要素の中のul要素に任意のid属性を付与できます。?>使い方は上記のコードのようにmenu_idをキーにして任意のid名を指定します。containerが付くwp_nav_menuのパラメータwp_nav_menuのパラメータ名でcontainerが付くパラメータは3つあります。containercontainer_classcontainer_id上記3つのパラメータはwp_nav_menuでナビゲーションメニューをWordPressのテーマのテンプレートファイルに表示して出力されるリスト要素を囲むコンテナ要素にマークアップするHTMLタグや属性を変更するために使用できます。wp_nav_menuのパラメータ「container」は、wp_nav_menuでナビゲーション要素のタグをカスタマイズできるパラメータです。?>使い方は=>の左側にパラメータcontainerを指定して、=>の右側にdivかnavのどちらかを指定します。サイトに表示するナビゲーションメニューがヘッダーのグローバルメニューにする場合などには、サイトの主要なメニューとしてnavタグで出力できるようにするとHTML構造上良くなるかと思います。パラメータ「container」の使い方では、値をfalseにするとコンテナなしのHTML構造にできます。Advertisement次はwp_nav_menuのパラメータの「container_class」の使い方です。container_classはサイトに表示するナビゲーションメニューのコンテナ要素にclass属性を付与できます。?>キーにパラメータのcontainer_classを定義して、その値に任意のクラス名を指定して渡します。‘wp_nav_menuのパラメータ「container_id」の使い方もcontainer_classと同じ使い方ですがcontainer_idのパラメータは、サイトに表示するナビゲーションメニューのコンテナ要素にid属性を付与できます。?>キーにパラメータのcontainer_idを定義して、その値に任意のid名を指定して使ってください。beforeとafterが付くwp_nav_menuのパラメータwp_nav_menuのパラメータ名には、beforeとafterが付いてるパラメータが4つあります。パラメータ名だけでどんな使い方ができるか検討が付く方もいると思いますが使い方の説明をします。?>beforeとafterのパラメータの値にリンクテキストの前後に表示したい文字列を記述するとwp_nav_menuで出力してサイトに表示するときに値に記述したテキストが表示できます。?>使い方は、ただbeforeとafterのパラメータ名がlink_beforeとlink_afterになったことで、パラメータの値に記述するテキストがリンクの前後のテキスト位置で出力して表示できるようになります。depthでメニュー階層をコントロールwp_nav_menuのパラメータで「depth」はメニュー階層の深さについてのパラメータです。?>wp_nav_menuのパラメータのキーにdepthを指定して値を0にした場合、全階層表示になります。depthの初期値も0なので全階層表示できます。MEDIA」の場合、カスタムメニューの階層は、wp_nav_menuのパラメーターのdepthパラメーターの値が1で「最上位の階層のみ表示」です。depthパラメータの値を0に変更することで全階層表示になり、子や孫の階層まで表示できるナビゲーションメニューにカスタムすることができます。メニュー階層はそれぞれのサイトのメニューによって違いがあるので、階層の深さをどこまでにしてメニュー表示するか調整してみてください。fallback_cbでカスタムメニューがないときの出力wp_nav_menuのパラメータ「fallback_cb」はメニューが存在しないときに実行される関数です。?>初期値:wp_page_menu「fallback_cb」はメニューが存在しないときの実行される関数。post-template.phpのwp_page_menu()を起動するようになっています。ちなみに固定ページがある場合は上記のコードのようにfallback_cbの指定だけだと固定ページがナビゲーションメニューとして出力していました。扱い方が複雑そうなので、しっかりメニューが存在する状態にしておけば深く考える必要ないパラメータかと思っています。echoでカスタムメニューの出力wp_nav_menuのパラメータ「echo」はメニューをHTML出力するか、PHPの値で返すかのパラメータです。?>falseを指定するとナビゲーションメニューのHTMLは出力されなくなり、サイト表示されません。trueにするとナビゲーションメニューの文字列(HTMLコード)を返しメニューを表示できます。wp_nav_menuで出力し表示したナビゲーションメニューの表示、非表示がコントロールできるパラメータということになりますね。初期値はtrueです。walkerでメニュー階層のliの中に構造を持たせるwp_nav_menuのパラメータの「walker」は、例えばwp_nav_menuで出力されたメニュー階層のliの中にさらに構造を持たせたいときなどに使用できます。custom_walker_nav_menu使い方としては使用する実際のオブジェクトを渡す必要があります。custom_walker_nav_menuにしてarrayの中に記述します。このとき記述する値は「Walker_Nav_Menu」を継承したクラスを作成し、部分的に編集しfunctions.phpでセットしておくことで、思い通りのナビメニューを作成して使うことができます。自作したクラスの作成で指定しない場合、デフォルトでワードプレスが用意している「Walker_Nav_Menu」というクラスが使われることになります。Advertisementパラメータ「walker」も初めてだと分かりづらいかもしれませんが、nav-menu-template.phpを開いてみると、デフォルトでwp_nav_menuを定義している箇所があるので雛形にして自作してしまえば簡単に作成ができます。item_wrapでメニューリストのラップをカスタマイズwp_nav_menuのパラメータ「item_wrap」は、メニューアイテムのラップの仕方についてのパラメータです。メニューアイテムのラップの仕方。?>Sprintf()関数の引数として評価される書式の文字列で、フォーマット文字列には番号付きトークンによって他のパラメーターが組み込まれています。‘menu_id’のパラメーターの値が展開。‘menu_class’のパラメーターの値が展開。sはリストアイテムが値として展開されます。渡すことで表示しないようにできます。まとめWordPressのwp_nav_menuに使用するパラメータの種類は地味に多いので、まずはカスタムメニューをサイトに表示するために必要なtheme_locationとmenuを覚えるようにするのが良いと思います。パラメータのitem_wrapやwalkerは私には難しく感じました。難しく思う場合には必要な状況によって使い方を補完していくことで、気づけば立派なwp_nav_menuのパラメータ使いに近づくかと思います。投稿一覧WordPressとWeb関係のことを趣味的に学んでます。独学なので記事で間違ってることがあればご指摘ください。記事が少しでも誰かの参考になればと思います。2019.06.19Atomは「Mac」「Windows」「Linux」に対応しているのでMacとWindowsの両方にAtomエディタをインストールしてみました。2019.03.25WordPressのテーマはサイトの外観デザインを簡単に変更することができる着せ替えです。2019.07.28WordPressでサイトのタイトルは関数を使用して取得し表示させることができます。WordPress.。