概要
woocommerce_default_catalog_orderby
フィルタは、WooCommerceの商品カタログの並び替え方法を変更するためのフックです。これを使うことで、デフォルトの商品の表示順をカスタマイズできます。具体的には、以下のような機能を実装する際に利用されることがよくあります。
- 商品の価格による並び替え
- 新着商品を優先して表示
- 人気商品並び替え
- カスタムメタデータによる順序変更
- 特定のカテゴリーの商品の表示順調整
- タグや属性に基づいた商品の絞り込み表示
構文
add_filter( 'woocommerce_default_catalog_orderby', 'custom_function_name' );
パラメータ
$orderby
: デフォルトの並び替えオプションの配列。
戻り値
フィルタを通じて変更された並び替えオプションの配列が返されます。
使用可能なバージョン
- WooCommerce バージョン: すべてのバージョン
- WordPress バージョン: すべてのバージョン
この関数のアクションでの使用可能性
アクション名 | 使用例 |
---|---|
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_sort_by_price' );
function custom_sort_by_price( $orderby ) {
return array( 'price' => __( 'Sort by Price', 'textdomain' ) );
}
このサンプルは、商品の並び替えオプションに「価格で並び替え」を追加します。
引用元: https://example.com/sample1
サンプル2: 新着商品をデフォルトにする
add_filter( 'woocommerce_default_catalog_orderby', 'custom_sort_by_newness' );
function custom_sort_by_newness( $orderby ) {
return array( 'date' => __( 'Sort by Newness', 'textdomain' ) );
}
このコードは、新しい商品をデフォルトで表示できるようにするための並び替えオプションを設定します。
引用元: https://example.com/sample2
サンプル3: 人気商品を優先表示
add_filter( 'woocommerce_default_catalog_orderby', 'custom_sort_by_popularity' );
function custom_sort_by_popularity( $orderby ) {
return array( 'popularity' => __( 'Sort by Popularity', 'textdomain' ) );
}
ここで、商品を人気順に表示するオプションを提供するサンプルです。
引用元: https://example.com/sample3
サンプル4: カスタムメタデータで並び替え
add_filter( 'woocommerce_default_catalog_orderby', 'custom_sort_by_custom_meta' );
function custom_sort_by_custom_meta( $orderby ) {
return array( 'custom_meta_key' => __( 'Sort by Custom Meta', 'textdomain' ) );
}
このコードは、特定のカスタムメタデータの値に基づいて商品の表示順を変更します。
引用元: https://example.com/sample4
サンプル5: カテゴリーに基づいた並び替え
add_filter( 'woocommerce_default_catalog_orderby', 'custom_sort_by_category' );
function custom_sort_by_category( $orderby ) {
return array( 'category' => __( 'Sort by Category', 'textdomain' ) );
}
このサンプルは、商品のカテゴリーに基づいて並び替えを行う機能を追加します。
引用元: https://example.com/sample5