概要
このページでは、WordPressのプラグイン「Custom Post Type UI」におけるcptui_pre_register_taxonomy
アクションについて解説します。このアクションは、カスタムタクソノミーを登録する前に実行されるフックであり、開発者がタクソノミーの設定をカスタマイズするために使用されます。
cptui_pre_register_taxonomy
は、以下のような機能を実装する際によく使われます:
- タクソノミーのラベルや設定を動的に変更する。
- 特定の条件に基づいてタクソノミーをスキップする。
- タクソノミーのサポート機能を追加する。
- カスタムフィールドやメタデータを追加する準備を行う。
- 登録するタクソノミーの設定をローカライズする。
- プログラム的にタクソノミーの設定を検証する。
このアクションは、Custom Post Type UIのバージョン1.0以降と、WordPressのバージョン4.0以降で使用可能です。
構文
add_action('cptui_pre_register_taxonomy', 'my_custom_function');
パラメータ
$taxonomy
(文字列): 登録されるタクソノミーのスラッグ。$args
(配列): タクソノミーの引数として使用される設定配列。
戻り値
このアクションは、値を返すことはありません。フック内でのアクションを実行することが主な目的です。
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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_pre_register_taxonomy', function($taxonomy, $args) {
if ($taxonomy === 'my_custom_taxonomy') {
$args['labels']['name'] = 'カスタムカテゴリ名';
}
}, 10, 2);
引用元: https://example.com
サンプル2: 特定条件でタクソノミーの登録をスキップ
このサンプルは、特定の条件満たさなければ、タクソノミーの登録をスキップする方法です。
add_action('cptui_pre_register_taxonomy', function($taxonomy, $args) {
if (!is_admin()) {
// 管理画面でない場合、タクソノミー登録をスキップ
return false;
}
}, 10, 2);
引用元: https://example.com
サンプル3: タクソノミーにカスタムメタデータを追加
このサンプルコードは、タクソノミーの設定にカスタムメタデータを追加する例です。
add_action('cptui_pre_register_taxonomy', function($taxonomy, $args) {
$args['meta_box_cb'] = 'my_custom_meta_box_callback';
}, 10, 2);
引用元: https://example.com
サンプル4: タクソノミーのサポート機能を追加
この例は、タクソノミーにサポート機能を追加する方法です。
add_action('cptui_pre_register_taxonomy', function($taxonomy, $args) {
$args['show_in_rest'] = true; // REST APIに表示
}, 10, 2);
引用元: https://example.com
サンプル5: タクソノミーの公開状態を確認
このサンプルコードでは、タクソノミーの公開状態を確認しています。
add_action('cptui_pre_register_taxonomy', function($taxonomy, $args) {
$args['public'] = false; // 非公開に設定
}, 10, 2);
引用元: https://example.com