ワードプレスのregister_nav_menus関数の使用方法・解説

概要

register_nav_menus 関数は、テーマにナビゲーションメニューを追加するために使用されます。この関数を使うことで、WordPressの管理画面でカスタムメニューを作成し、それをテーマ内で表示することが可能になります。以下は、この関数がよく使われる機能の例です:

  1. ヘッダーメニューの作成
  2. フッターメニューの作成
  3. サイドバーメニューの作成
  4. モバイル用のナビゲーションメニューの作成
  5. ソーシャルメディアリンクメニューの作成
  6. カスタムメニュー位置の定義
  7. ウィジェットエリアでのメニュー表示
  8. 多言語対応メニューの作成

構文

register_nav_menus( $locations );

パラメータ

  • $locations (配列): メニューの位置を定義する配列。キーがメニューのロケーション名で、値がメニューの表示名です。

戻り値

この関数は値を返しません。

関連する関数

使用可能なバージョン

register_nav_menus は WordPress バージョン 3.0 以降で使用可能です。

コアファイルのパス

wp-includes/nav-menu.php

サンプルコード

サンプル1: 基本的なメニューの登録

このサンプルは、headerfooter の2つのナビゲーションメニューを登録します。

function my_theme_register_menus() {
    register_nav_menus( array(
        'header-menu' => __( 'Header Menu' ),
        'footer-menu' => __( 'Footer Menu' ),
    ) );
}
add_action( 'after_setup_theme', 'my_theme_register_menus' );

サンプル2: 登録したメニューを表示

このサンプルは、登録した header-menu をテーマのヘッダー部分に表示する方法を示します。

<?php
if ( has_nav_menu( 'header-menu' ) ) {
    wp_nav_menu( array(
        'theme_location' => 'header-menu',
        'container'      => 'nav',
    ) );
}
?>

サンプル3: 複数メニューの登録

このサンプルでは、さらに3つのメニューを追加する方法を示しています。

function my_theme_register_menus() {
    register_nav_menus( array(
        'primary' => __( 'Primary Menu' ),
        'secondary' => __( 'Secondary Menu' ),
        'social' => __( 'Social Menu' ),
    ) );
}
add_action( 'after_setup_theme', 'my_theme_register_menus' );

サンプル4: メニューにアイコンを追加

このサンプルでは、メニューアイテムに Font Awesome のアイコンを追加する方法を示します。

function my_custom_nav_menu_icon( $items ) {
    $items = str_replace('<a', '<a class="menu-icon"', $items);
    return $items;
}
add_filter( 'wp_nav_menu_items', 'my_custom_nav_menu_icon' );

サンプル5: メニューの位置を条件に応じて変更

このサンプルでは、特定の条件に基づいて異なるメニューを表示する方法を示します。

function my_theme_conditional_menu() {
    if ( is_page_template( 'template-custom.php' ) ) {
        wp_nav_menu( array( 'theme_location' => 'custom-menu' ) );
    } else {
        wp_nav_menu( array( 'theme_location' => 'default-menu' ) );
    }
}

この関数のアクションでの使用可能性

アクション名 使用可能性
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

非推奨または削除されたバージョン

現在、register_nav_menus 関数は特定のバージョンで非推奨もしくは削除されていません。

この関数について質問する


上の計算式の答えを入力してください