概要
wp_get_nav_menu_object
関数は、指定されたナビゲーションメニューのデータを取得するためのWordPressの関数です。この関数は、ナビゲーションメニューの詳細情報を取得し、その情報をカスタマイズした表示や、ナビゲーションメニューの操作に役立ちます。よく使われる目的として以下のようなものがあります:
- メニューのIDを使用してナビゲーションメニューの情報を取得
- テーマのカスタマイズでナビゲーションメニュー情報を活用
- プラグインによるナビゲーションメニューの拡張
- メニューの状態を確認するためのデバッグ
- 特定のメニューが存在するかチェックする際に使用
- メニューアイテムの属性をカスタマイズ
- 現在のページに基づくメニュー作成のロジックに利用
- メニューのスタイルを動的に変更する際に活用
構文
wp_get_nav_menu_object( $menu );
パラメータ
$menu
(string|int): メニューのスラッグ、またはID。
戻り値
WP_Term
オブジェクト: 取得したナビゲーションメニューのオブジェクト。メニューが存在しない場合はfalse
が返されます。
関連する関数
使用可能なバージョン
- この関数は、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: ナビゲーションメニュー情報の取得
$menu = wp_get_nav_menu_object('primary-menu');
if ($menu) {
echo 'メニュー名: ' . esc_html($menu->name);
}
このコードは、スラッグが「primary-menu」のナビゲーションメニューを取得し、その名前を表示します。
サンプルコード2: メニューの速度チェック
$menu = wp_get_nav_menu_object(123); // 123はメニューのID
if ($menu) {
var_dump($menu);
}
指定したIDのメニューが存在する場合、そのオブジェクトの詳細をダンプ表示します。
サンプルコード3: メニューの存在確認
$menu_slug = 'footer-menu';
if (wp_get_nav_menu_object($menu_slug)) {
echo 'フッター用メニューが存在します。';
} else {
echo 'フッター用メニューが存在しません。';
}
このコードは、指定されたスラッグのメニューが存在するかどうかを確認し、メッセージを表示します。
サンプルコード4: メニューの属性取得
$menu = wp_get_nav_menu_object('top-menu');
if ($menu) {
$items = wp_get_nav_menu_items($menu->term_id);
foreach ($items as $item) {
echo '<a href="' . esc_url($item->url) . '">' . esc_html($item->title) . '</a><br>';
}
}
このコードは、ナビゲーションメニューのアイテムを取得し、それぞれのタイトルとURLを表示します。
サンプルコード5: テーマに基づくメニュー表示
$menu = wp_get_nav_menu_object('main-menu');
if ($menu) {
wp_nav_menu(array('menu' => $menu->slug));
}
指定したメニューが存在する場合、そのナビゲーションメニューをテーマ内で表示します。