概要
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;
}
このサンプルでは、タクソノミーのメタボックスにカスタムコールバックを設定しています。