概要
woocommerce_product_categories_widget_product_terms_args
は、WooCommerce の事前に定義されたウィジェットである「商品カテゴリウィジェット」の動作をカスタマイズするためのフィルターフックです。このフックを使用することにより、ウィジェットに表示されるカテゴリの引数を変更したり、特定の条件に基づいて出力を調整することができます。主に以下のような機能を実装する際によく使われます:
- カテゴリの順序を変更する。
- 特定のカテゴリのみを表示する。
- カテゴリの件数を制限する。
- 表示されるカテゴリの親子関係を制御する。
- カテゴリに関するカスタムメタデータを表示する。
- ウィジェットのスタイルや HTML のクラスを変更する。
フィルタの概要
- 構文:
add_filter( 'woocommerce_product_categories_widget_product_terms_args', 'your_function_name', 10, 2 );
- パラメータ:
$args
– 表示するカテゴリに関連する引数の配列。$instance
– ウィジェットのインスタンス情報。
- 戻り値: 編集された引数の配列。
- 使用可能なプラグインバージョン: WooCommerce 2.0.0 以上。
- 使用可能な WordPress バージョン: WordPress 3.0 以上。
サンプルコード
サンプル1: カテゴリの並び替え
add_filter( 'woocommerce_product_categories_widget_product_terms_args', 'custom_product_categories_order', 10, 2 );
function custom_product_categories_order( $args, $instance ) {
$args['orderby'] = 'name'; // カテゴリ名で並び替え
$args['order'] = 'ASC'; // 昇順
return $args;
}
このコードは、商品カテゴリウィジェットで表示されるカテゴリを名前順に昇順で並び替えます。
サンプル2: 特定のカテゴリのみ表示
add_filter( 'woocommerce_product_categories_widget_product_terms_args', 'limit_product_categories_display', 10, 2 );
function limit_product_categories_display( $args, $instance ) {
$args['include'] = array( 10, 15, 20 ); // 表示するカテゴリIDを指定
return $args;
}
このコードは、特定のカテゴリ(ID 10, 15, 20)のみをウィジェットで表示します。
サンプル3: 表示するカテゴリの数を制限
add_filter( 'woocommerce_product_categories_widget_product_terms_args', 'set_category_count_limit', 10, 2 );
function set_category_count_limit( $args, $instance ) {
$args['number'] = 5; // 表示するカテゴリの最大件数
return $args;
}
このコードは、商品カテゴリウィジェットに最大5件のカテゴリのみを表示します。
サンプル4: 階層的なカテゴリ表示の設定
add_filter( 'woocommerce_product_categories_widget_product_terms_args', 'show_hierarchical_categories', 10, 2 );
function show_hierarchical_categories( $args, $instance ) {
$args['hierarchical'] = true; // カテゴリを階層的に表示
return $args;
}
このコードは、商品カテゴリが階層的に表示されるよう設定します。
サンプル5: カスタムクラスの追加
add_filter( 'woocommerce_product_categories_widget_product_terms_args', 'add_custom_class_to_categories', 10, 2 );
function add_custom_class_to_categories( $args, $instance ) {
$args['css_class'] = 'custom-category-class'; // カスタムクラスを追加
return $args;
}
このコードは、商品カテゴリウィジェットにカスタム CSS クラスを追加します。
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |