概要
cptui_get_post_type_exists
関数は、Custom Post Type UI プラグインにおいて、指定されたカスタム投稿タイプが存在するかどうかを検査するための関数です。この関数は、プラグインを開発する際に特に役立ちます。主に次のような機能や目的で使用されます:
- カスタム投稿タイプの存在確認
- 投稿の表示条件の設定
- 管理画面でのカスタム投稿のクエリ処理
- テンプレートファイルにおける表示条件判定
- フロントエンドでのカスタム投稿のフィルタリング
- ユーザーによる動的な機能追加
構文
cptui_get_post_type_exists( $post_type );
パラメータ
$post_type
(string): 確認したいカスタム投稿タイプのスラッグ。
戻り値
- (bool): 指定したカスタム投稿タイプが存在すれば
true
、存在しなければfalse
。
要件
- Custom Post Type UI バージョン: 1.0.0 以上
- WordPress バージョン: 4.0 以上
サンプルコード
サンプルコード1
if ( cptui_get_post_type_exists( 'my_custom_post_type' ) ) {
// カスタム投稿タイプが存在する場合の処理
echo 'カスタム投稿タイプは存在します。';
} else {
// 存在しない場合の処理
echo 'カスタム投稿タイプは存在しません。';
}
説明: ‘my_custom_post_type’ が存在するか確認し、存在する場合としない場合のメッセージを表示します。
サンプルコード2
function check_custom_post_type() {
if ( cptui_get_post_type_exists( 'portfolio' ) ) {
// カスタム投稿タイプ「portfolio」が存在する場合のロジック
// ここに処理を追加
}
}
add_action( 'init', 'check_custom_post_type' );
説明: init
フックで ‘portfolio’ カスタム投稿タイプの存在を確認し、存在する場合に特定の処理を実行します。
サンプルコード3
function modify_query_for_custom_post_type( $query ) {
if ( ! is_admin() && $query->is_main_query() && cptui_get_post_type_exists( 'event' ) ) {
// カスタム投稿タイプ「event」が存在する場合のクエリ変更
$query->set( 'post_type', 'event' );
}
}
add_action( 'pre_get_posts', 'modify_query_for_custom_post_type' );
説明: クエリの条件を編集して、未管理画面で「event」カスタム投稿タイプが存在する場合、それをメインクエリに含めます。
サンプルコード4
if ( function_exists( 'cptui_get_post_type_exists' ) && cptui_get_post_type_exists( 'team_member' ) ) {
// 関数が存在し、かつ「team_member」が存在する場合のカスタム処理
// チームメンバーの出力処理
}
説明: 関数が存在するかを確認した後、「team_member」カスタム投稿タイプの存在をチェックし、存在する場合の処理を行います。
サンプルコード5
function custom_template_include( $template ) {
if ( cptui_get_post_type_exists( 'review' ) && is_post_type_archive( 'review' ) ) {
// カスタム投稿タイプアーカイブタームが存在する場合のテンプレート変更
return locate_template( 'archive-review.php' );
}
return $template;
}
add_filter( 'template_include', 'custom_template_include' );
説明: カスタム投稿タイプ「review」のアーカイブページの存在を確認し、特定のテンプレートを使用します。
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
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 |