概要
cptui_get_taxonomy_exists
関数は、指定したタクソノミーが既に存在するかどうかを確認するために使用されます。この関数は、カスタム投稿タイプやカスタムタクソノミーの開発時に特に有用です。具体的には、以下のような機能を実装する際に活用されることが一般的です。
- タクソノミーの重複登録を防ぐ
- プラグイン設定時に既存のタクソノミーを確認する
- テーマの設定でタクソノミーが存在するか確認する
- カスタムクエリの条件を調整する
- ユーザーインターフェースの表示切り替えに利用する
- ショートコードやウィジェットでのタクソノミーの存在確認
構文
$cptui_exists = cptui_get_taxonomy_exists( $taxonomy );
パラメータ
$taxonomy
(string): 確認したいタクソノミーのスラッグ名。
戻り値
- (bool): タクソノミーが存在すれば
true
を、存在しなければfalse
を返します。
使用可能なプラグイン及びワードプレスのバージョン
- 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: タクソノミーの存在確認
// カスタムタクソノミーが存在するか確認する
$taxonomy = 'custom_taxonomy';
if ( cptui_get_taxonomy_exists( $taxonomy ) ) {
echo "タクソノミー '$taxonomy' は存在します。";
} else {
echo "タクソノミー '$taxonomy' は存在しません。";
}
説明: 指定したタクソノミーが存在するか確認し、結果を表示します。このコードは特にカスタムタクソノミーの存在をチェックする時に使用されます。
引用元: https://example.com/sample1
サンプル2: プラグインの設定時の確認
function my_custom_plugin_setup() {
$taxonomy = 'my_custom_taxonomy';
if ( ! cptui_get_taxonomy_exists( $taxonomy ) ) {
// タクソノミーが存在しない場合の処理
register_taxonomy( $taxonomy, 'post', array( 'label' => 'Custom Taxonomy' ) );
}
}
add_action( 'plugins_loaded', 'my_custom_plugin_setup' );
説明: カスタムプラグインのロード時に、指定したタクソノミーが存在しない場合は新たに登録します。
引用元: https://example.com/sample2
サンプル3: テーマの初期化時に使用
function my_theme_setup() {
if ( cptui_get_taxonomy_exists( 'event_category' ) ) {
//タクソノミーが存在する場合の処理
add_theme_support( 'events' );
}
}
add_action( 'after_setup_theme', 'my_theme_setup' );
説明: テーマの初期設定時に特定のタクソノミーが存在している場合、追加のテーマサポートを設定します。
引用元: https://example.com/sample3
サンプル4: カスタムクエリでの利用
function custom_posts_query( $query ) {
if ( ! is_admin() && $query->is_main_query() ) {
if ( cptui_get_taxonomy_exists( 'portfolio_category' ) ) {
$query->set( 'tax_query', array( array(
'taxonomy' => 'portfolio_category',
'field' => 'slug',
'terms' => 'web-design',
) ) );
}
}
}
add_action( 'pre_get_posts', 'custom_posts_query' );
説明: メインクエリにおいて、特定のタクソノミーが存在する場合、タクソノミー条件を設定します。
引用元: https://example.com/sample4
サンプル5: ウィジェットでの存在確認
function my_custom_widget() {
$taxonomy = 'genre';
if ( cptui_get_taxonomy_exists( $taxonomy ) ) {
// ウィジェットの設定
echo "このウィジェットは '$taxonomy' タクソノミーに依存しています。";
}
}
add_action( 'widgets_init', 'my_custom_widget' );
説明: ウィジェットの初期化時にタクソノミーの存在を確認し、その結果に応じてウィジェットの表示内容を変更します。
引用元: https://example.com/sample5