概要
woocommerce_shortcode_$THIS->TYPE_loop_no_resultsフィルタは、WooCommerceの特定のショートコードによって生成される商品のループが、結果を返さない場合に実行されるフックです。このフィルタを使用すると、デフォルトのメッセージをカスタマイズしたり、特定の条件に基づいて別の処理を実行したりすることができます。
このフィルタは、以下のような機能を実装する際によく使用されます。
- ループが結果を返さない場合のカスタムメッセージ表示
- ユーザーに対して関連する商品を提案する
- SEO向けのカスタマイズされたコンテンツを追加する
- 特別セールやプロモーションの告知を行う
- 商品の在庫状況を確認する指示を表示する
- カスタムフォームやサポートリクエストのリンクを表示する
構文
このフィルタの基本的な構文は以下の通りです。
add_filter('woocommerce_shortcode_$THIS->TYPE_loop_no_results', 'your_custom_function', 10, 2);
パラメータ
$output: ループが結果を返さない場合に表示されるメッセージや出力$shortcode: 使用されているショートコードの情報
戻り値
- カスタマイズされた出力結果を返します。
使用可能なWooCommerceのバージョン
- 6.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_shortcode_product_loop_no_results', 'custom_no_results_message', 10, 2);
function custom_no_results_message($output, $shortcode) {
return '<p>商品が見つかりませんでした。<a href="/shop">他の製品を探す</a></p>';
}
このコードは、商品が見つからない場合にカスタムメッセージとリンクを表示します。
サンプル2: 関連商品の提案
add_filter('woocommerce_shortcode_product_loop_no_results', 'related_products_suggestion', 10, 2);
function related_products_suggestion($output, $shortcode) {
return '<p>あなたにおすすめの商品:</p>' . do_shortcode('[related_products]');
}
このコードでは、商品が見つからない時に関連商品を表示します。
サンプル3: SEO対策のコンテンツ追加
add_filter('woocommerce_shortcode_product_loop_no_results', 'seo_custom_content', 10, 2);
function seo_custom_content($output, $shortcode) {
return $output . '<p>より多くの選択肢が他にもあります。</p>';
}
このコードは、SEO施策として関連するコンテンツを追加します。
サンプル4: プロモーションの告知
add_filter('woocommerce_shortcode_product_loop_no_results', 'promotion_alert', 10, 2);
function promotion_alert($output, $shortcode) {
return '<p>現在、期間限定のプロモーション中です!今すぐチェック!</p>';
}
このコードは、見つからない商品に対してプロモーション情報を表示します。
サンプル5: サポートリクエストリンクの表示
add_filter('woocommerce_shortcode_product_loop_no_results', 'support_request_link', 10, 2);
function support_request_link($output, $shortcode) {
return $output . '<p>サポートが必要ですか?<a href="/support">サポートに問い合わせる</a></p>';
}
このコードでは、商品が見つからない際にサポートリクエストのリンクを表示します。