プラグインWooCommerceのwoocommerce_custom_nav_menu_itemsフィルタの使用方法・解説

概要

woocommerce_custom_nav_menu_itemsフィルタは、WooCommerceのナビゲーションメニューにカスタム項目を追加するために使用されます。このフィルタを利用することで、WooCommerceのメニューに特定のリンクや情報を動的に追加することができます。主に以下のような機能を実装する際に役立ちます。

  1. カートに商品が入っている場合のカートアイコンの表示
  2. ユーザーのログイン状態に応じたメニュー項目の表示
  3. 特定のカテゴリーや商品のリンクをダイナミックに追加
  4. プライバシーポリシーや利用規約へのリンクを追加
  5. メンバーシップや特典に関する情報の表示
  6. フッターメニューへのカスタムリンクの挿入

フィルタの構文は次の通りです。

add_filter('woocommerce_custom_nav_menu_items', 'your_custom_function', 10, 2);

パラメータ

  • $items: 現在のナビゲーションメニューアイテムを含む文字列
  • $args: ナビゲーションメニューの引数を含む配列

戻り値

変更されたナビゲーションメニューアイテムの文字列

互換性

  • WooCommerceバージョン: 4.0以上
  • WordPressバージョン: 5.0以上

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

アクション 使用可能性
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: カートアイコンの追加

add_filter('woocommerce_custom_nav_menu_items', 'add_cart_icon_to_menu', 10, 2);
function add_cart_icon_to_menu($items, $args) {
    if (is_user_logged_in()) {
        $items .= '<li class="menu-item"><a href="' . esc_url(wc_get_cart_url()) . '">カート</a></li>';
    }
    return $items;
}

このコードは、ログインしたユーザーのメニューに「カート」アイコンを追加します。ユーザーがカートのリンクをクリックできるようになります。

サンプル2: 特定のカテゴリーへのリンク追加

add_filter('woocommerce_custom_nav_menu_items', 'add_category_link_to_menu', 10, 2);
function add_category_link_to_menu($items, $args) {
    $items .= '<li class="menu-item"><a href="' . esc_url(get_term_link('特定のカテゴリー', 'product_cat')) . '">特定のカテゴリー</a></li>';
    return $items;
}

このコードは、特定の製品カテゴリーへのリンクをメニューに追加します。

サンプル3: ログアウトリンクの表示

add_filter('woocommerce_custom_nav_menu_items', 'add_logout_link_to_menu', 10, 2);
function add_logout_link_to_menu($items, $args) {
    if (is_user_logged_in()) {
        $items .= '<li class="menu-item"><a href="' . esc_url(wp_logout_url(home_url())) . '">ログアウト</a></li>';
    }
    return $items;
}

このコードは、ログインしたユーザーに「ログアウト」リンクをメニューに表示します。

サンプル4: サイドバーメニューへのカスタムリンクの追加

add_filter('woocommerce_custom_nav_menu_items', 'add_custom_link_to_sidebar_menu', 10, 2);
function add_custom_link_to_sidebar_menu($items, $args) {
    if (is_active_sidebar('sidebar-1')) {
        $items .= '<li class="menu-item"><a href="https://example.com/custom-page">カスタムページ</a></li>';
    }
    return $items;
}

このコードは、サイドバーがアクティブであれば、カスタムページへのリンクを追加します。

サンプル5: プライバシーポリシーへのリンク追加

add_filter('woocommerce_custom_nav_menu_items', 'add_privacy_policy_link', 10, 2);
function add_privacy_policy_link($items, $args) {
    $items .= '<li class="menu-item"><a href="' . esc_url(get_privacy_policy_url()) . '">プライバシーポリシー</a></li>';
    return $items;
}

このコードは、「プライバシーポリシー」へのリンクをメニューに追加し、サイトのプライバシーに関する情報を提供します。

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


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