概要
cptui_before_update_taxonomy
は、Custom Post Type UI プラグインにおいて、カスタムタクソノミーを更新する前に呼び出されるフックです。このアクションは、カスタムタクソノミーが変更される前に実行させたい処理を追加する際に非常に便利です。具体的には、以下のようなシナリオで使用されることが多いです:
- タクソノミーの名称やスラッグを変更する際の検証
- タクソノミーに関連するキャッシュをクリアする
- 特定の条件に応じてタクソノミーのメタデータを更新する
- タクソノミー更新時の通知処理
- カスタムフィールドの値を基にタクソノミーの設定を調整する
- 外部APIとの接続を行い、タクソノミーを動的に更新する
構文
add_action( 'cptui_before_update_taxonomy', 'your_function_name', 10, 2 );
パラメータ
$taxonomy
: 更新されるタクソノミーの名前$args
: タクソノミーの設定を含む配列
戻り値
このアクションには戻り値はありません。主に処理を実行するためのフックとして利用されます。
使用可能なプラグインCustom Post Type UIのバージョン
Custom Post Type UI バージョン 1.8.0 以上で使用可能です。
ワードプレスのバージョン
WordPress バージョン 4.5 以上で使用可能です。
サンプルコード
1. タクソノミー名の変更を制御する
このサンプルコードでは、特定の条件を満たす場合にタクソノミー名の変更を無効化します。
function prevent_taxonomy_name_change( $taxonomy, $args ) {
if ( $taxonomy == 'your_taxonomy' ) {
// ここで処理を中断
return;
}
}
add_action( 'cptui_before_update_taxonomy', 'prevent_taxonomy_name_change', 10, 2 );
このコードは、指定したタクソノミーが更新される際に名前の変更を防ぐ役割を果たします。
2. タクソノミーのメタデータを更新
タクソノミーの更新前に、そのメタデータを調整する例です。
function update_taxonomy_meta( $taxonomy, $args ) {
if ( $taxonomy == 'your_taxonomy' ) {
update_option( 'your_taxonomy_meta', 'new_value' );
}
}
add_action( 'cptui_before_update_taxonomy', 'update_taxonomy_meta', 10, 2 );
このコードは、指定したタクソノミーが更新される前にメタデータを設定します。
3. タクソノミー更新時の通知処理
タクソノミーが更新される際に、管理者に通知を送信する例です。
function notify_taxonomy_update( $taxonomy, $args ) {
if ( $taxonomy == 'your_taxonomy' ) {
wp_mail( 'admin@example.com', 'Taxonomy Updated', 'Your taxonomy has been updated.');
}
}
add_action( 'cptui_before_update_taxonomy', 'notify_taxonomy_update', 10, 2 );
このコードでは、指定したタクソノミーが更新された際に管理者にメール通知を送信します。
4. 外部APIとの接続
タクソノミー更新時に外部APIと接続するサンプルです。
function sync_with_external_api( $taxonomy, $args ) {
if ( $taxonomy == 'your_taxonomy' ) {
// External API call here
wp_remote_post( 'https://api.example.com/update', array(
'body' => json_encode( $args )
));
}
}
add_action( 'cptui_before_update_taxonomy', 'sync_with_external_api', 10, 2 );
このコードは、タクソノミーが更新された際に外部APIへデータを送信します。
5. キャッシュのクリア
タクソノミーが更新された際にキャッシュをクリアする例です。
function clear_cache_on_taxonomy_update( $taxonomy, $args ) {
if ( $taxonomy == 'your_taxonomy' ) {
delete_transient( 'your_taxonomy_cache' );
}
}
add_action( 'cptui_before_update_taxonomy', 'clear_cache_on_taxonomy_update', 10, 2 );
このコードでは、タクソノミー更新時に関連するキャッシュを削除します。
この関数のアクションでの使用可能性
アクション名 | 使用例 |
---|---|
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 |