概要
cptui_get_taxonomies_for_post_types
関数は、WordPressのCustom Post Type UIプラグインにおいて、指定したカスタム投稿タイプに関連付けられているタクソノミー(分類)を取得するための関数です。この関数は、特定のカスタム投稿タイプと連携するタクソノミーを簡単に取得できるため、主に以下のような機能を実装する際によく使われます。
- カスタム投稿タイプに特定の分類を追加する機能。
- カスタム投稿タイプに関連するタクソノミーを一覧表示する機能。
- 投稿のフィルタリング機能をカスタム投稿タイプに統合する際。
- 管理画面でのカスタム投稿タイプにタクソノミーを組み合わせる機能。
- テンプレートファイルにおける表示のための分類情報の取得。
- REST APIエンドポイントとの統合時にタクソノミー情報を取得する機能。
構文
cptui_get_taxonomies_for_post_types( $post_types );
パラメータ
$post_types
(string|array): タクソノミーを取得したいカスタム投稿タイプの名前。単一の投稿タイプ名または複数の投稿タイプ名の配列を指定できます。
戻り値
- (array): 指定したカスタム投稿タイプに関連付けられたタクソノミーの配列。
プラグインとWordPressのバージョン
- Custom Post Type UIのバージョン: 1.10.0 以降
- WordPressのバージョン: 5.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: デフォルトのカスタム投稿タイプのタクソノミーを取得
$post_type = 'movie';
$taxonomies = cptui_get_taxonomies_for_post_types($post_type);
foreach ($taxonomies as $taxonomy) {
echo $taxonomy . '<br>';
}
このコードは、’movie’というカスタム投稿タイプのタクソノミーを取得し、リストとして表示します。
サンプルコード2: 複数のカスタム投稿タイプからタクソノミーを取得
$post_types = ['book', 'author'];
$taxonomies = cptui_get_taxonomies_for_post_types($post_types);
print_r($taxonomies);
このコードは、’book’および’author’という複数のカスタム投稿タイプに関連付けられたタクソノミーのリストを取得して表示します。
サンプルコード3: タクソノミーを利用した投稿フィルタリング
function filter_movies_by_taxonomy($query) {
if (is_post_type_archive('movie') && $query->is_main_query()) {
$taxonomies = cptui_get_taxonomies_for_post_types('movie');
// ここでタクソノミーを使ったフィルタリング処理
}
}
add_action('pre_get_posts', 'filter_movies_by_taxonomy');
このコードは、’movie’カスタム投稿タイプのアーカイブページで、関連するタクソノミーを取得し、フィルタリングを行うフックのサンプルです。
サンプルコード4: カスタム投稿タイプを登録時にタクソノミーを確認
function register_custom_post_types() {
$post_type = 'event';
register_post_type($post_type, []);
$taxonomies = cptui_get_taxonomies_for_post_types($post_type);
if (!empty($taxonomies)) {
// フックとして何かの処理を実行
}
}
add_action('init', 'register_custom_post_types');
このコードは、カスタム投稿タイプ’event’を登録し、関連するタクソノミーが存在するかどうかを確認する処理を示しています。
サンプルコード5: テンプレート内でのタクソノミーの利用
$post_type = 'portfolio';
$taxonomies = cptui_get_taxonomies_for_post_types($post_type);
if (!empty($taxonomies)) {
foreach ($taxonomies as $taxonomy) {
echo 'タクソノミー: ' . $taxonomy . '<br>';
}
}
このコードは、’portfolio’カスタム投稿タイプに関連するタクソノミーをテンプレート内で表示するためのサンプルです。