概要
woocommerce_catalog_orderby
フィルタは、WooCommerce のカタログでの商品一覧の並び順を変更するためのフックです。このフィルタを使用することで、デフォルトの並び順をカスタマイズしたり、新しい並び順オプションを追加することができます。このフィルタは、オンラインストアのユーザーエクスペリエンスを向上させたり、特定のマーケティング戦略に応じた商品表示を実現する際によく使用されます。
一般的に使用されるケースは以下の通りです:
1. 商品の新着順を追加する。
2. 商品の評価順を設定する。
3. 価格の昇順や降順を変更する。
4. 特定のカテゴリーの商品を優先表示する。
5. カスタムフィールドに基づく並び替えを追加する。
6. セール商品の表示優先度を変更する。
構文
add_filter( 'woocommerce_catalog_orderby', 'custom_catalog_orderby' );
パラメータ
$sort_args
: 連想配列形式で、並び順を定義するオプションを含む。
戻り値
- カスタマイズされた並び順の配列。
使用可能バージョン
- 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_catalog_orderby', 'add_new_arrivals_option' );
function add_new_arrivals_option( $sortby ) {
$sortby['new_arrivals'] = '新着順';
return $sortby;
}
このコードは「新着順」オプションを並び替えリストに追加します。
サンプルコード2: 評価順のカスタマイズ
add_filter( 'woocommerce_catalog_orderby', 'custom_sort_by_rating' );
function custom_sort_by_rating( $sortby ) {
$sortby['rating'] = '評価順';
return $sortby;
}
このコードは商品の評価順で並び替えるオプションを追加します。
サンプルコード3: カスタムフィールドに基づく並び替え
add_filter( 'woocommerce_catalog_orderby', 'custom_sort_by_custom_field' );
function custom_sort_by_custom_field( $sortby ) {
$sortby['custom_field'] = 'カスタムフィールド順';
return $sortby;
}
このコードはカスタムフィールドに基づいた並び替えオプションを提供します。
サンプルコード4: セール商品の表示優先度
add_filter( 'woocommerce_catalog_orderby', 'custom_sort_by_sale' );
function custom_sort_by_sale( $sortby ) {
$sortby['sale'] = 'セール商品優先';
return $sortby;
}
このコードはセール商品の表示順序を優先するオプションを追加します。
サンプルコード5: 価格の降順
add_filter( 'woocommerce_catalog_orderby', 'custom_sort_by_price_descending' );
function custom_sort_by_price_descending( $sortby ) {
$sortby['price_desc'] = '価格の降順';
return $sortby;
}
このコードは商品の価格を降順で並び替えるオプションを追加します。
これらのサンプルコードは、WordPressとWooCommerceの公式ドキュメントやフォーラムを参考に作成しています。