概要
wp_get_nav_menus関数は、すべてのナビゲーションメニュー情報を取得するために使用されます。この関数はWordPressのテーマやプラグインでナビゲーションメニューを作成・管理する際に非常に役立ちます。具体的には、以下のようなシナリオでよく使用されます。
- テーマのカスタマイザーでメニューを選択する。
- カスタムウィジェットでメニューを表示する。
- プラグインでメニューを動的に追加する。
- テーマのフッターやヘッダーにメニューを表示する。
- ページや投稿内でメニューを表示する。
- メニューボタンの表示をカスタマイズする。
- カスタムテンプレートで特定のメニューを呼び出す。
- ユーザーに特定のメニューを表示する条件を設定する。
構文
wp_get_nav_menus( $args );
パラメータ
$args(配列, オプション) : 引数の配列で、メニューを取得するための条件を指定できます。
戻り値
WP_Term[]: メニューの配列を返します。
関連する関数
使用可能なバージョン
- WordPress 3.0 以降
コアファイル
/wp-includes/nav-menu.php
この関数のアクションでの使用可能性
| アクション | 使用例 |
|---|---|
| mu_plugin_loaded | |
| registered_post_type | |
| plugins_loaded | |
| wp_roles_init | |
| setup_theme | |
| after_setup_theme | 〇 |
| set_current_user | |
| init | |
| register_sidebar | |
| wp_loaded | |
| send_headers | |
| parse_query | |
| pre_get_posts | |
| wp | |
| template_redirect | |
| get_header | |
| wp_head |
サンプルコード
サンプルコード1: メニューの取得
$menus = wp_get_nav_menus();
foreach ( $menus as $menu ) {
echo $menu->name . '<br>';
}
このコードは、すべてのナビゲーションメニューを取得し、それぞれのメニューの名前を表示します。
サンプルコード2: メニューのIDを取得
$menus = wp_get_nav_menus();
$menu_ids = wp_list_pluck($menus, 'term_id');
print_r($menu_ids);
このコードは、すべてのナビゲーションメニューのIDを配列として取得し、表示します。
サンプルコード3: 特定のメニューを取得
$menus = wp_get_nav_menus();
$target_menu = null;
foreach ( $menus as $menu ) {
if ( $menu->slug === 'main-menu' ) {
$target_menu = $menu;
break;
}
}
echo $target_menu->name;
このコードは、スラグが「main-menu」の特定のメニューを取得し、その名前を表示します。
サンプルコード4: メニューのURLを表示
$menus = wp_get_nav_menus();
foreach ( $menus as $menu ) {
echo '<a href="' . esc_url( get_term_link( $menu ) ) . '">' . esc_html( $menu->name ) . '</a><br>';
}
このコードは、すべてのメニューのURLをリンクとして表示します。
サンプルコード5: メニューが存在するか確認
$menus = wp_get_nav_menus();
if ( empty( $menus ) ) {
echo 'メニューは存在しません。';
} else {
echo 'メニューが存在します。';
}
このコードは、メニューが存在するかどうかを確認し、結果を表示します。