概要
cptui_attach_post_types_to_taxonomy
は、WordPressのプラグインCustom Post Type UIで提供されるフックで、カスタム投稿タイプをカスタム分類に関連付ける際に使用されます。このフックを利用することで、ユーザーは新たに作成したカスタム投稿タイプを特定の分類に簡単に結びつけることができます。
このアクションは、以下のような機能を実装する際によく使われます:
- カスタム投稿タイプの作成と分類の設定を同時に行う
- 特定の投稿タイプを特定のタクソノミーに関連付けてコンテンツを整理する
- カスタム分類によるフィルタリング機能の実装
- カスタム投稿タイプでのタクソノミーの表示設定
- 投稿タイプごとのメタボックスの追加
- カスタムクエリの結果をさらに細かく制御する
構文
add_action('cptui_attach_post_types_to_taxonomy', 'your_function_name', 10, 2);
パラメータ
$slug
: 登録されているタクソノミーのスラッグ(文字列)$post_types
: 関連付けられるカスタム投稿タイプの配列
戻り値
このアクションは戻り値を持ちません。
使用可能なプラグインバージョン
このアクションはCustom Post Type UIのバージョン1.7.5以降で利用可能です。
使用可能なWordPressのバージョン
このアクションは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_action('cptui_attach_post_types_to_taxonomy', function($slug, $post_types) {
if ($slug === 'my_custom_taxonomy') {
$post_types[] = 'my_custom_post_type';
}
return $post_types;
});
このサンプルコードは、my_custom_taxonomy
というタクソノミーにmy_custom_post_type
というカスタム投稿タイプを関連付けています。
サンプル2: 複数のカスタム投稿タイプをタクソノミーに関連付ける
add_action('cptui_attach_post_types_to_taxonomy', function($slug, $post_types) {
if ($slug === 'my_custom_taxonomy') {
$post_types = array_merge($post_types, ['my_custom_post_type', 'another_custom_post_type']);
}
return $post_types;
});
このサンプルは、1つのタクソノミーに対して複数のカスタム投稿タイプを登録しています。
サンプル3: タクソノミーに特定の条件でのみ紐づける
add_action('cptui_attach_post_types_to_taxonomy', function($slug, $post_types) {
if ($slug === 'my_custom_taxonomy' && current_user_can('manage_options')) {
$post_types[] = 'admin_only_post_type';
}
return $post_types;
});
このコードは、特定のユーザー権限を持つ場合にのみカスタム投稿タイプをタクソノミーに追加します。
サンプル4: タクソノミー名に基づいて条件付きで投稿タイプを追加
add_action('cptui_attach_post_types_to_taxonomy', function($slug, $post_types) {
if (strpos($slug, 'special') !== false) {
$post_types[] = 'special_post_type';
}
return $post_types;
});
このコードは、タクソノミーのスラッグにspecial
が含まれる場合に特定のカスタム投稿タイプを追加します。
サンプル5: 投稿タイプの一部にタクソノミーを関連付ける
add_action('cptui_attach_post_types_to_taxonomy', function($slug, $post_types) {
if ($slug === 'category') {
$post_types[] = 'news';
$post_types[] = 'events';
}
return $post_types;
});
このサンプルは、既存のcategory
タクソノミーにnews
とevents
というカスタム投稿タイプを関連付けます。