概要
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 'メニューが存在します。';
}
このコードは、メニューが存在するかどうかを確認し、結果を表示します。