get_nav_menu_locations()


WordPress関数get_nav_menu_locations()は、テーマで登録されているナビゲーションメニューの位置を取得するために使用されます。

構文

get_nav_menu_locations();

関数get_nav_menu_locations()は、現在のテーマで登録されているすべてのメニュー位置の配列を返します。この配列は、位置スラッグをキーとして持ち、そのスラッグに関連付けられたメニューIDを値として返します。

戻り値

  • array (配列) — メニュー位置スラッグとメニューIDのペア。

使用例 1: メニュー位置と関連メニューIDの取得

現在のテーマで登録されているすべてのメニュー位置と、それに関連付けられたメニューIDを取得します。

<?php
$locations = get_nav_menu_locations();
foreach ( $locations as $location => $menu_id ) {
    echo '位置: ' . $location . ' - メニューID: ' . $menu_id;
}
?>

使用例 2: 特定のメニュー位置に関連付けられたメニューの名前を取得

特定のメニュー位置に関連付けられているメニュー名を取得します。

<?php
$locations = get_nav_menu_locations();
$menu_id = $locations['primary'];
$menu = wp_get_nav_menu_object( $menu_id );
echo 'メニュー名: ' . $menu->name;
?>

使用例 3: メニュー位置が登録されているかを確認

特定のメニュー位置が登録されているかを確認します。

<?php
$locations = get_nav_menu_locations();
if ( isset( $locations['primary'] ) ) {
    echo 'メニュー位置 "primary" が登録されています。';
} else {
    echo 'メニュー位置 "primary" は登録されていません。';
}
?>

使用例 4: 条件に基づいてメニューを表示

特定のメニュー位置が登録されている場合のみメニューを表示します。

<?php
$locations = get_nav_menu_locations();
if ( isset( $locations['footer'] ) ) {
    wp_nav_menu( array( 'theme_location' => 'footer' ) );
}
?>

使用例 5: カスタムメニュー位置を取得

テーマにカスタムメニュー位置を登録し、その位置のメニューIDを取得します。

<?php
register_nav_menu( 'custom_location', 'カスタムメニュー' );
$locations = get_nav_menu_locations();
$menu_id = $locations['custom_location'];
echo 'カスタムメニューのID: ' . $menu_id;
?>

注意事項

  • メニュー位置が未登録の場合、配列にはそのスラッグが含まれません。
  • メニュー位置にメニューが割り当てられていない場合、nullを返します。

関連機能: