プラグインCustom Post Type UIのcptui_taxonomies_overrideフィルタの使用方法・解説

概要

cptui_taxonomies_overrideフィルタは、WordPressのCustom Post Type UIプラグインを使用する際に、カスタム投稿タイプのタクソノミーを柔軟に管理するためのフックです。このフィルタを使用することで、デフォルトのタクソノミー設定を上書きすることができ、特定の要件に応じたカスタマイズが可能となります。

よく使われる機能としては以下のものがあります:
1. カスタム投稿タイプごとのタクソノミーの追加、削除。
2. 複数のタクソノミーを一つのカスタム投稿タイプに関連付け。
3. 他のプラグインやテーマで定義されたタクソノミーとの統合。
4. タクソノミーの表示設定を管理。
5. タクソノミー用のカスタムメタデータの追加。
6. タクソノミーのスラッグの変更。

構文

add_filter('cptui_taxonomies_override', 'your_function_name', 10, 2);

パラメータ

  • $taxonomy: 変更対象のタクソノミー。
  • $post_type: 現在のカスタム投稿タイプ。

戻り値

  • $taxonomies: 新たに設定されたタクソノミーの配列。

バージョン

  • Custom Post Type UI: 1.0以降
  • WordPress: 4.0以降

この関数のアクションでの使用可能性

アクション 使用可能性
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('cptui_taxonomies_override', 'add_custom_taxonomy', 10, 2);
function add_custom_taxonomy($taxonomies, $post_type) {
    if ($post_type === 'your_custom_post_type') {
        $taxonomies[] = 'your_custom_taxonomy';
    }
    return $taxonomies;
}

このコードは、特定のカスタム投稿タイプに新しいタクソノミーを追加します。

サンプルコード2: タクソノミーの削除

add_filter('cptui_taxonomies_override', 'remove_custom_taxonomy', 10, 2);
function remove_custom_taxonomy($taxonomies, $post_type) {
    if ($post_type === 'your_custom_post_type') {
        $taxonomies = array_diff($taxonomies, ['unwanted_taxonomy']);
    }
    return $taxonomies;
}

ここでは、特定のカスタム投稿タイプから不要なタクソノミーを削除しています。

サンプルコード3: タクソノミーのカスタマイズ

add_filter('cptui_taxonomies_override', 'customize_taxonomy_args', 10, 2);
function customize_taxonomy_args($taxonomies, $post_type) {
    if ($post_type === 'your_custom_post_type') {
        foreach ($taxonomies as &$taxonomy) {
            $taxonomy['hierarchical'] = true; // 階層を持たせる
        }
    }
    return $taxonomies;
}

このサンプルでは、特定のタクソノミーに階層性を持たせる設定をしています。

サンプルコード4: タクソノミーのスラッグ変更

add_filter('cptui_taxonomies_override', 'change_taxonomy_slug', 10, 2);
function change_taxonomy_slug($taxonomies, $post_type) {
    if ($post_type === 'your_custom_post_type') {
        foreach ($taxonomies as &$taxonomy) {
            if ($taxonomy['slug'] == 'old_slug') {
                $taxonomy['slug'] = 'new_slug';
            }
        }
    }
    return $taxonomies;
}

このコードでは、特定のタクソノミーのスラッグを変更しています。

サンプルコード5: タクソノミーのメタデータ追加

add_filter('cptui_taxonomies_override', 'add_custom_meta_for_taxonomy', 10, 2);
function add_custom_meta_for_taxonomy($taxonomies, $post_type) {
    if ($post_type === 'your_custom_post_type') {
        foreach ($taxonomies as &$taxonomy) {
            $taxonomy['meta_box_cb'] = 'your_custom_meta_box_callback';
        }
    }
    return $taxonomies;
}

このサンプルでは、タクソノミーのメタボックスにカスタムコールバックを設定しています。

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


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