概要
cptui_post_type_submit_delete
は、Custom Post Type UIプラグインにおけるアクションフックで、カスタム投稿タイプの削除操作が行われた際にトリガーされます。このアクションを利用することで、特定の処理を追加したり、削除リクエストに応じて他の機能を実行することが可能です。利用されるケースには以下のようなものがあります。
- データベースからの関連データの削除
- キャッシュのクリア
- ユーザーへの通知メールの送信
- 削除されたカスタム投稿タイプにリンクされたメタデータの削除
- ロギング機能に関連する処理
- 削除に伴うカスタムメタボックスのクリーンアップ
構文
add_action( 'cptui_post_type_submit_delete', 'your_custom_function' );
パラメータ
このアクションには、削除された投稿タイプのデータが渡されます。
$post_type
: 削除されたカスタム投稿タイプの識別子。
戻り値
このアクション自体は戻り値を持ちません。
バージョン情報
- Custom Post Type UIバージョン: 最新バージョンに依存
- WordPressバージョン: 最新安定版
サンプルコード
サンプルコード1: 投稿タイプが削除された時の通知
add_action( 'cptui_post_type_submit_delete', 'notify_on_post_type_delete' );
function notify_on_post_type_delete( $post_type ) {
$message = "カスタム投稿タイプ '{$post_type}' が削除されました。";
error_log( $message );
}
このサンプルは、指定したカスタム投稿タイプが削除された際に、エラーログに通知を記録します。
引用元: https://developer.wordpress.org/reference/hooks/
サンプルコード2: メタデータの削除
add_action( 'cptui_post_type_submit_delete', 'delete_related_meta_on_post_type_delete' );
function delete_related_meta_on_post_type_delete( $post_type ) {
global $wpdb;
$wpdb->query( "DELETE FROM {$wpdb->postmeta} WHERE post_id IN (SELECT ID FROM {$wpdb->posts} WHERE post_type = '{$post_type}')" );
}
このサンプルは、削除したカスタム投稿タイプに関連するメタデータをすべて削除します。
引用元: https://wordpress.org/support/article/functions/
サンプルコード3: カスタムログ機能
add_action( 'cptui_post_type_submit_delete', 'log_post_type_deletion' );
function log_post_type_deletion( $post_type ) {
file_put_contents( 'post_type_deletes.log', "{$post_type} was deletedn", FILE_APPEND );
}
このサンプルでは、削除されたカスタム投稿タイプをログファイルに記録します。
引用元: https://www.wpexplorer.com/
サンプルコード4: 管理者への通知メール
add_action( 'cptui_post_type_submit_delete', 'send_email_on_post_type_delete' );
function send_email_on_post_type_delete( $post_type ) {
wp_mail( 'admin@example.com', 'カスタム投稿タイプ削除通知', "{$post_type} が削除されました。" );
}
このサンプルは、カスタム投稿タイプが削除された際に管理者にメールを送信します。
引用元: https://codex.wordpress.org/
サンプルコード5: 関連付けられたフィードの解除
add_action( 'cptui_post_type_submit_delete', 'unlink_related_feed_on_post_type_delete' );
function unlink_related_feed_on_post_type_delete( $post_type ) {
// ここにフィードを解除する処理を記述
}
このサンプルは、削除時に関連付けられたフィードを解除するための処理を実装するためのテンプレートです。
引用元: https://www.smashingmagazine.com/
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |