概要
cptui_taxonomy_submit_delete
アクションは、Custom Post Type UIプラグインでカスタムタクソノミーを削除する際に発動するフックです。このアクションは、タクソノミー削除時に特定の処理を実行したい場合に非常に便利です。具体的には、ユーザーがタクソノミーを削除する際のカスタマイズや通知、ログ記録などでよく使われます。
このアクションがよく使われる場面として、以下のようなケースが考えられます。
1. タクソノミー削除時のカスタム通知の送信
2. データベースのクリーンアップ
3. 削除されたタクソノミーに関連するカスタムメタデータの削除
4. カスタムログへの削除履歴の記録
5. REST APIのキャッシュクリア
6. タクソノミー削除後のフラッシュメッセージの表示
構文
add_action( 'cptui_taxonomy_submit_delete', 'your_custom_function', 10, 2 );
パラメータ
$taxonomy
(string): 削除されたタクソノミーのスラッグ$data
(array): 削除に関するデータ
戻り値
このアクション自体は何も返さず、副作用として処理を行います。
使用可能なプラグインのバージョン
Custom Post Type UI: 1.8.3 以降
使用可能なワードプレスのバージョン
WordPress: 4.7 以降
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
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_taxonomy_submit_delete', 'log_taxonomy_deletion', 10, 2 );
function log_taxonomy_deletion( $taxonomy, $data ) {
error_log( "Taxonomy '{$taxonomy}' was deleted." );
}
このコードは、タクソノミーが削除されたときに、その情報をエラーログに記録します。
サンプルコード元: https://developer.wordpress.org/reference/functions/error_log/
サンプル2: 削除時に関連メタの削除
add_action( 'cptui_taxonomy_submit_delete', 'delete_related_meta_on_taxonomy_delete', 10, 2 );
function delete_related_meta_on_taxonomy_delete( $taxonomy, $data ) {
$terms = get_terms( $taxonomy, array('hide_empty' => false) );
foreach ( $terms as $term ) {
delete_term_meta( $term->term_id, 'custom_meta' );
}
}
削除されたタクソノミーに関連するカスタムメタデータをすべて削除します。
サンプルコード元: https://developer.wordpress.org/reference/functions/delete_term_meta/
サンプル3: 削除通知の送信
add_action( 'cptui_taxonomy_submit_delete', 'send_deletion_notification', 10, 2 );
function send_deletion_notification( $taxonomy, $data ) {
wp_mail( 'admin@example.com', 'Taxonomy Deleted', "{$taxonomy} has been deleted." );
}
タクソノミー削除時に管理者にメール通知を送信します。
サンプルコード元: https://developer.wordpress.org/reference/functions/wp_mail/
サンプル4: フラッシュメッセージの表示
add_action( 'cptui_taxonomy_submit_delete', 'flash_message_after_deletion', 10, 2 );
function flash_message_after_deletion( $taxonomy, $data ) {
add_action( 'admin_notices', function() use ( $taxonomy ) {
echo '<div class="notice notice-success"><p>Taxonomy ' . esc_html( $taxonomy ) . ' has been deleted successfully.</p></div>';
});
}
タクソノミー削除後に成功メッセージを表示します。
サンプルコード元: https://developer.wordpress.org/reference/functions/add_action/#showing-notifications-in-admin
サンプル5: REST APIキャッシュのクリア
add_action( 'cptui_taxonomy_submit_delete', 'clear_api_cache_on_taxonomy_delete', 10, 2 );
function clear_api_cache_on_taxonomy_delete( $taxonomy, $data ) {
// Clear specific cache related to the deleted taxonomy
wp_cache_delete( 'taxonomy_' . $taxonomy . '_data', 'your_custom_cache_group' );
}
削除されたタクソノミーに関連する特定のキャッシュをクリアします。
サンプルコード元: https://developer.wordpress.org/reference/functions/wp_cache_delete/