概要
woocommerce_default_catalog_orderby
フィルタは、WooCommerceにおいて商品カタログのデフォルトの並び順を変更するために使用されます。このフィルタを使うことで、製品一覧の表示順をカスタマイズし、ユーザーの体験をより良くすることができます。このフィルタは特に、特定の商品を優先的に表示したい場合や、特定の条件に基づいて商品を並べ替えたい場合に役立ちます。以下は、このフィルタがよく使用される場面の例です。
- ユーザーの好みに基づく商品順の変更
- プロモーション中の商品を優先的に表示
- 在庫のある商品を上部に表示
- 新着商品を目立たせるための並び替え
- 売れ筋商品の優先表示
- カテゴリー特有のルールに基づく並び替え
このフィルタは、WooCommerceバージョン3.0以降で利用可能であり、WordPressバージョン4.0以降と互換性があります。
構文
apply_filters( 'woocommerce_default_catalog_orderby', $orderby );
パラメータ
$orderby
(string): デフォルトの並び順。たとえば、’menu_order’, ‘date’, ‘price’, ‘popularity’, ‘rating’ など。
戻り値
- (string): フィルタ後の並び順。
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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_default_catalog_orderby', 'custom_default_catalog_orderby' );
function custom_default_catalog_orderby( $orderby ) {
return 'price'; // 価格の昇順
}
引用元: https://www.example.com/sample1
サンプルコード2: 新着順で商品を表示
このコードは商品を新着順に表示するように設定します。
add_filter( 'woocommerce_default_catalog_orderby', 'custom_catalog_order_by_newest' );
function custom_catalog_order_by_newest( $orderby ) {
return 'date'; // 新着順
}
引用元: https://www.example.com/sample2
サンプルコード3: 人気商品の表示
人気商品を優先的に表示するためのサンプルコードです。
add_filter( 'woocommerce_default_catalog_orderby', 'custom_catalog_order_by_popularity' );
function custom_catalog_order_by_popularity( $orderby ) {
return 'popularity'; // 人気順
}
引用元: https://www.example.com/sample3
サンプルコード4: レーティング順で商品を表示
このサンプルは、ユーザー評価の高い商品を上に表示します。
add_filter( 'woocommerce_default_catalog_orderby', 'custom_catalog_order_by_rating' );
function custom_catalog_order_by_rating( $orderby ) {
return 'rating'; // レーティング順
}
引用元: https://www.example.com/sample4
サンプルコード5: カスタムメニュー順
このコードで、商品のメニュー順をデフォルトにしています。
add_filter( 'woocommerce_default_catalog_orderby', 'custom_catalog_order_by_menu_order' );
function custom_catalog_order_by_menu_order( $orderby ) {
return 'menu_order'; // メニュー順
}
引用元: https://www.example.com/sample5