概要
woocommerce_sortable_taxonomies
フィルタは、WooCommerceでの商品の並び替えに関するカスタマイズを可能にするフックです。このフィルタを使用することで、カスタムタクソノミーをWooCommerceの商品リストに追加し、商品の表示順を簡単に変更することができます。以下の機能を実装する際によく利用されます:
- カスタムタクソノミーを整列可能にする。
- 特定のタクソノミーを標準の並び替えオプションに追加する。
- 商品のカスタムフィールドを使用した並び替え機能を拡張。
- タクソノミーの並び替えに基づいた商品表示を実現。
- 管理画面で商品をタクソノミーに基づいて並び替えるインターフェースを追加。
- 特定の条件に基づいてタクソノミーの並び替えを動的に変更。
構文
add_filter('woocommerce_sortable_taxonomies', 'custom_sortable_taxonomies');
パラメータ
array $taxonomies
: 並び替え可能なタクソノミーのリスト。デフォルトでは、product_cat
やproduct_tag
などの標準タクソノミーが含まれています。
戻り値
array
: 並び替えを有効にするタクソノミーを含む配列。
使用可能なバージョン
- WooCommerce: すべてのバージョン(基本的にWooCommerceがインストールされている全ての環境で使用可能)
- WordPress: 4.0以上
サンプルコード
サンプルコード1: カスタムタクソノミーを追加
add_filter('woocommerce_sortable_taxonomies', 'add_custom_taxonomy');
function add_custom_taxonomy($taxonomies) {
// 新しいカスタムタクソノミーを追加
$taxonomies[] = 'custom_taxonomy';
return $taxonomies;
}
このコードは、custom_taxonomy
というカスタムタクソノミーを商品の並び替え可能なリストに追加します。
サンプルコード2: 複数のカスタムタクソノミーを追加
add_filter('woocommerce_sortable_taxonomies', 'add_multiple_taxonomies');
function add_multiple_taxonomies($taxonomies) {
// 複数のカスタムタクソノミーを追加
$taxonomies[] = 'brand';
$taxonomies[] = 'color';
return $taxonomies;
}
こちらのコードは、brand
と color
の2つのカスタムタクソノミーを追加します。
サンプルコード3: 特定の条件に基づいてタクソノミーを変更
add_filter('woocommerce_sortable_taxonomies', 'conditional_taxonomy_sortable');
function conditional_taxonomy_sortable($taxonomies) {
if (is_admin()) {
$taxonomies[] = 'special_category';
}
return $taxonomies;
}
このコードは、管理画面にいるときだけspecial_category
タクソノミーを追加します。
サンプルコード4: タクソノミーの優先順位を変更
add_filter('woocommerce_sortable_taxonomies', 'change_taxonomy_priority');
function change_taxonomy_priority($taxonomies) {
// ここでタクソノミーの順序を変更することができる
if (($key = array_search('product_cat', $taxonomies)) !== false) {
unset($taxonomies[$key]);
array_unshift($taxonomies, 'product_cat');
}
return $taxonomies;
}
このコードは、product_cat
タクソノミーを最優先で表示させるために順序を変更します。
サンプルコード5: 特定のタクソノミーを削除
add_filter('woocommerce_sortable_taxonomies', 'remove_taxonomy');
function remove_taxonomy($taxonomies) {
// 特定のタクソノミーを削除
$taxonomies = array_diff($taxonomies, array('product_tag'));
return $taxonomies;
}
このコードは、product_tag
タクソノミーを並び替え可能なリストから削除します。
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |
このテーブルは、woocommerce_sortable_taxonomies
フィルタが実行されるアクションの使用可能性を示しています。