プラグインWooCommerceのwoocommerce_sortable_taxonomiesフィルタの使用方法・解説

概要

woocommerce_sortable_taxonomies フィルタは、WooCommerceでの商品の並び替えに関するカスタマイズを可能にするフックです。このフィルタを使用することで、カスタムタクソノミーをWooCommerceの商品リストに追加し、商品の表示順を簡単に変更することができます。以下の機能を実装する際によく利用されます:

  1. カスタムタクソノミーを整列可能にする。
  2. 特定のタクソノミーを標準の並び替えオプションに追加する。
  3. 商品のカスタムフィールドを使用した並び替え機能を拡張。
  4. タクソノミーの並び替えに基づいた商品表示を実現。
  5. 管理画面で商品をタクソノミーに基づいて並び替えるインターフェースを追加。
  6. 特定の条件に基づいてタクソノミーの並び替えを動的に変更。

構文

add_filter('woocommerce_sortable_taxonomies', 'custom_sortable_taxonomies');

パラメータ

  • array $taxonomies: 並び替え可能なタクソノミーのリスト。デフォルトでは、product_catproduct_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;
}

こちらのコードは、brandcolor の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 フィルタが実行されるアクションの使用可能性を示しています。

この関数について質問する


上の計算式の答えを入力してください