wp_nav_menu()


WordPressのwp_nav_menu()関数は、カスタムメニューを表示するために使用されます。この関数を使うことで、テーマ内にナビゲーションメニューを簡単に追加できます。

構文

wp_nav_menu( array $args = array() );

引数の説明:

  • $args (array) — メニュー表示に関する設定を配列で指定します。
  • menu (int|string|WP_Term) — 表示するメニューを指定します。ID、スラッグ、またはメニューオブジェクトを指定可能です。
  • menu_class (string) — メニューのul要素に適用するCSSクラスを指定します。
  • menu_id (string) — メニューのul要素に適用するIDを指定します。
  • container (string) — メニューを囲むコンテナ要素を指定します。デフォルトはdivです。
  • container_class (string) — コンテナ要素に適用するCSSクラスを指定します。
  • container_id (string) — コンテナ要素に適用するIDを指定します。
  • theme_location (string) — テーマ内で登録されたメニューの位置を指定します。
  • fallback_cb (callable) — メニューが存在しない場合に呼び出すコールバック関数を指定します。
  • before (string) — 各メニューアイテムの前に表示するテキストを指定します。
  • after (string) — 各メニューアイテムの後に表示するテキストを指定します。
  • link_before (string) — 各リンクテキストの前に表示するテキストを指定します。
  • link_after (string) — 各リンクテキストの後に表示するテキストを指定します。
  • depth (int) — メニューの階層深度を指定します。デフォルトは0(全ての階層を表示)です。
  • walker (object) — カスタムウォーカーオブジェクトを指定します。

例1: 基本的なメニュー表示

最もシンプルな形でメニューを表示します。

<?php wp_nav_menu(); ?>

例2: 特定のメニューを表示

IDやスラッグを指定して特定のメニューを表示します。

<?php wp_nav_menu( array( 'menu' => 'primary-menu' ) ); ?>

例3: テーマロケーションを指定

テーマ内で登録されたメニューの位置を指定して表示します。

<?php wp_nav_menu( array( 'theme_location' => 'header-menu' ) ); ?>

例4: カスタムクラスを追加

メニューのul要素にカスタムクラスを追加します。

<?php wp_nav_menu( array( 'menu_class' => 'custom-menu-class' ) ); ?>

例5: コンテナ要素を変更

メニューを囲むコンテナ要素をnavに変更します。

<?php wp_nav_menu( array( 'container' => 'nav' ) ); ?>

例6: メニューの階層深度を制限

メニューの表示階層を1階層に制限します。

<?php wp_nav_menu( array( 'depth' => 1 ) ); ?>

例7: カスタムウォーカーを使用

カスタムウォーカーオブジェクトを使用してメニューを表示します。

<?php wp_nav_menu( array( 'walker' => new Custom_Walker_Nav_Menu() ) ); ?>

注意点

  • メニューが登録されていない場合、fallback_cbで指定したコールバック関数が呼び出されます。
  • theme_locationを指定する場合、テーマ内でregister_nav_menus()を使ってメニュー位置を登録しておく必要があります。
  • カスタムウォーカーを使用する場合は、適切なクラスを定義しておく必要があります。

関連機能: