概要
woocommerce_custom_nav_menu_items
フィルタは、WooCommerceのナビゲーションメニューにカスタム項目を追加するために使用されます。このフィルタを利用することで、WooCommerceのメニューに特定のリンクや情報を動的に追加することができます。主に以下のような機能を実装する際に役立ちます。
- カートに商品が入っている場合のカートアイコンの表示
- ユーザーのログイン状態に応じたメニュー項目の表示
- 特定のカテゴリーや商品のリンクをダイナミックに追加
- プライバシーポリシーや利用規約へのリンクを追加
- メンバーシップや特典に関する情報の表示
- フッターメニューへのカスタムリンクの挿入
フィルタの構文は次の通りです。
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;
}
このコードは、「プライバシーポリシー」へのリンクをメニューに追加し、サイトのプライバシーに関する情報を提供します。