概要
cptui_get_post_types_for_taxonomies
関数は、WordPress の Custom Post Type UI プラグインにおいて、指定されたタクソノミーに関連付けられたカスタム投稿タイプを取得するための関数です。この関数を使用することで、特定のタクソノミーに関連する投稿タイプのリストを簡単に取得でき、フックを通じてさまざまな処理を行う際に役立ちます。
この関数は、以下のような機能を実装する際によく使われます:
1. カスタム投稿タイプに対するカスタムフィルタを実装。
2. タクソノミーに関連するメニューや設定を動的に生成。
3. 投稿リストをフィルタリングするカスタムクエリの実装。
4. フロントエンドでのデータ表示をカスタマイズ。
5. ダッシュボードでの管理画面の拡張。
6. プラグイン間でのデータの整合性を保つための共通インターフェース。
この関数は、Custom Post Type UI の最新バージョンと WordPress のバージョンの両方で利用可能です。
構文
$cptui_post_types = cptui_get_post_types_for_taxonomies( $taxonomies );
パラメータ
$taxonomies
(string|array) : タクソノミーのスラッグまたはスラッグの配列を指定します。
戻り値
- (array) : 指定されたタクソノミーに関連付けられた投稿タイプのスラッグを含む配列。
使用可能なバージョン
- Custom Post Type UI: 1.0 以降
- WordPress: 4.0 以降
サンプルコード
サンプルコード 1
$taxonomies = 'genre';
$post_types = cptui_get_post_types_for_taxonomies( $taxonomies );
foreach ( $post_types as $post_type ) {
echo $post_type . '<br>';
}
このコードは、’genre’ タクソノミーに関連するすべてのカスタム投稿タイプのスラッグを取得して表示します。
サンプルコード 2
$taxonomies = ['category', 'post_tag'];
$post_types = cptui_get_post_types_for_taxonomies( $taxonomies );
print_r($post_types);
このコードは、複数のタクソノミーに関連するカスタム投稿タイプを取得し、その結果を配列として出力します。
サンプルコード 3
function my_custom_post_type_filter( $query ) {
if ( ! is_admin() && $query->is_main_query() ) {
$types = cptui_get_post_types_for_taxonomies('custom_tax');
$query->set('post_type', $types);
}
}
add_action( 'pre_get_posts', 'my_custom_post_type_filter' );
このコードは、特定のタクソノミーに基づいて、メインクエリによって取得される投稿タイプをフィルタリングします。
サンプルコード 4
$taxonomies = 'my_custom_taxonomy';
if ( ! empty( cptui_get_post_types_for_taxonomies( $taxonomies ) ) ) {
// 何らかの処理
}
このコードは、’my_custom_taxonomy’ タクソノミーに関連する投稿タイプが存在するかをチェックし、存在する場合に特定の処理を行います。
サンプルコード 5
function list_custom_post_types() {
$post_types = cptui_get_post_types_for_taxonomies( 'my_taxonomy' );
foreach ( $post_types as $type ) {
echo '<li>' . esc_html( $type ) . '</li>';
}
}
add_shortcode( 'custom_post_type_list', 'list_custom_post_types' );
このコードは、ショートコードを介して ‘my_taxonomy’ タクソノミーに関連するカスタム投稿タイプのリストを出力します。
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
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 |