概要
woocommerce_no_products_found
フィルタは、WooCommerceで商品が見つからなかった場合(例えば、ショッピングページやカテゴリーページで)に表示されるメッセージやコンテンツをカスタマイズするためのフックです。このフィルタを使うことで、デフォルトのメッセージを変更したり、特定のデザインやロジックに基づいた内容を表示することが可能です。
よく使われる機能には以下のようなものがあります:
- ユーザーに向けたカスタムメッセージの表示
- 特定の関連商品へのリンクやバナーの表示
- 商品が見つからない場合の代替コンテンツの提供
- カート内の商品が無い場合のナビゲーションの改善
- SEO対策としてカスタムのメタ情報を表示
- 有料プランや他のサービスの宣伝
構文
add_filter('woocommerce_no_products_found', 'your_custom_function');
パラメータ
- $message (string): デフォルトのメッセージ内容。
戻り値
- (string): カスタマイズされたメッセージ内容。
WooCommerceのバージョン
- このフィルタはWooCommerceのバージョン3.0.0以降で使用可能です。
WordPressのバージョン
- WordPress 4.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_no_products_found', 'custom_no_products_message');
function custom_no_products_message() {
return __('お探しの商品は見つかりませんでした。', 'text-domain');
}
このサンプルコードは、商品が見つからなかった場合に表示されるメッセージを、日本語で「お探しの商品は見つかりませんでした」とカスタマイズします。
サンプル2: 商品が見つからない場合の提案
add_filter('woocommerce_no_products_found', 'custom_suggestion_message');
function custom_suggestion_message() {
return __('他のカテゴリを試してみてください!', 'text-domain');
}
このサンプルは、ユーザーに他のカテゴリを試すよう促すメッセージを表示します。
サンプル3: 関連商品の表示
add_filter('woocommerce_no_products_found', 'suggest_related_products');
function suggest_related_products() {
return '<p>お探しの商品はありませんが、こちらの関連商品をチェックしてください。</p>';
}
このサンプルは、関連商品のチェックを促す文を表示します。
サンプル4: カスタムリンクの挿入
add_filter('woocommerce_no_products_found', 'insert_custom_link');
function insert_custom_link() {
return '<p>代わりに<a href="/shop">こちら</a>を訪れてください。</p>';
}
このサンプルでは、代わりにショップへのリンクを含むメッセージが表示されます。
サンプル5: カスタムHTMLの挿入
add_filter('woocommerce_no_products_found', 'insert_custom_html');
function insert_custom_html() {
return '<div class="no-products-message"><h2>商品が見つかりません</h2><p>これから新しい商品が追加されます。しばらくお待ちください。</p></div>';
}
このサンプルコードでは、HTMLを使用してより視覚的なメッセージを表示します。ここではカスタムのタイトルと説明文を含んでいます。