概要
woocommerce_redirect_single_search_result
フィルタは、WooCommerceの製品検索機能において、単一の検索結果が見つかった場合に自動的にその製品ページにリダイレクトするための機能を提供します。このフィルタを使用することで、adminや顧客の利便性を向上させることができ、ためらいなく商品をすぐに見ることができます。このフィルタは主に以下のような場合に使われます。
- 単一の商品にリダイレクトする際のルーティングを柔軟に制御したい
- 商品の特定のカスタムフィールドやメタデータに基づいて条件付けしたリダイレクトを行いたい
- 他のページ(事前に設定したURL)にリダイレクトしたい場合のカスタマイズ
- 検索語に基づいて特定のキャンペーンページに遷移させたい
- 商品が在庫切れや特定の条件にある場合に異なるページにリダイレクトさせる
- 簡易商品カタログのような特別な目的のページへのリダイレクトを実施したい
構文
add_filter('woocommerce_redirect_single_search_result', 'custom_redirect_single_search_result');
function custom_redirect_single_search_result($redirect) {
return $redirect;
}
パラメータ
$redirect
: リダイレクト先のURL。
戻り値
- リダイレクトする先のURL。
WooCommerceのバージョン
- 5.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_redirect_single_search_result', 'custom_redirect_single_search_result');
function custom_redirect_single_search_result($redirect) {
if (is_product()) {
// 特定の製品に対してのみリダイレクト
return home_url('/my-custom-page');
}
return $redirect;
}
説明: このコードは、特定の条件下でリダイレクト先をカスタマイズし、常に my-custom-page
へリダイレクトする例です。
引用元: なし
サンプル2: 在庫がない商品に別のページを設定する
add_filter('woocommerce_redirect_single_search_result', 'redirect_out_of_stock_products');
function redirect_out_of_stock_products($redirect) {
global $product;
if (!$product->is_in_stock()) {
return home_url('/out-of-stock');
}
return $redirect;
}
説明: 商品が在庫切れの場合に、out-of-stock
ページへリダイレクトさせる例です。
引用元: なし
サンプル3: 特定のカテゴリーの商品へのリダイレクトを行う
add_filter('woocommerce_redirect_single_search_result', 'redirect_specific_category');
function redirect_specific_category($redirect) {
global $product;
if (has_term('special-category', 'product_cat', $product->get_id())) {
return home_url('/special-offer');
}
return $redirect;
}
説明: 特定カテゴリー内の商品に対して、special-offer
ページへリダイレクトする実装です。
引用元: なし
サンプル4: カスタムタクソノミーによるリダイレクト
add_filter('woocommerce_redirect_single_search_result', 'redirect_custom_taxonomy');
function redirect_custom_taxonomy($redirect) {
global $product;
if (has_term('custom-term', 'custom_taxonomy', $product->get_id())) {
return home_url('/custom-page');
}
return $redirect;
}
説明: custom_taxonomy
というカスタムタクソノミーに基づき、特定のページへリダイレクトする例です。
引用元: なし
サンプル5: 検索用語によるリダイレクト設定
add_filter('woocommerce_redirect_single_search_result', 'redirect_based_on_search_term');
function redirect_based_on_search_term($redirect) {
if (isset($_GET['s']) && $_GET['s'] === '特定のキーワード') {
return home_url('/keyword-page');
}
return $redirect;
}
説明: 検索用語が特定のキーワードである場合、そのキーワードに対応するページへリダイレクトする例です。
引用元: なし