概要
wp_delete_post
アクションは、投稿情報を削除する際にトリガーされるフックです。このアクションは、削除対象の投稿が実際に削除される直前に実行され、開発者が特定の処理を追加するために使用します。よく使われる場面には以下のようなものがあります:
- 削除時に関連データのクリーンアップ
- ログ記録のためのカスタム処理
- ユーザーへの通知(メール送信など)
- キャッシュのクリア
- カスタムメタデータの削除
- 統計データの更新
- 移動先のステータス変更
- 他のプラグインとの連携処理
構文
add_action('before_delete_post', 'your_function_name');
パラメータ
$post_id
: 削除される投稿のID。
戻り値
戻り値はありません。アクションフックにおける処理は実行されますが、何も明示的には戻されません。
関連する関数
使用可能なバージョン
このアクションはWordPress 2.0.0以降で使用可能です。
コアファイルのパス
wp-includes/post.php
この関数のアクションでの使用可能性
アクション名 | 使用例 |
---|---|
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('before_delete_post', 'delete_post_meta_on_delete');
function delete_post_meta_on_delete($post_id) {
delete_post_meta($post_id, 'your_meta_key');
}
このコードは、投稿が削除される直前に、特定のメタデータを削除します。
サンプル 2:削除した投稿のログを記録
add_action('before_delete_post', 'log_post_deletion');
function log_post_deletion($post_id) {
$post = get_post($post_id);
error_log('Post deleted: ' . $post->post_title);
}
このコードは、削除された投稿のタイトルをエラーログに記録します。
サンプル 3:ユーザーへの通知を送信
add_action('before_delete_post', 'notify_user_on_delete');
function notify_user_on_delete($post_id) {
$user_id = get_post_field('post_author', $post_id);
$user_info = get_userdata($user_id);
wp_mail($user_info->user_email, '投稿が削除されました', 'あなたの投稿が削除されました。');
}
このコードは、投稿が削除されたときに、その投稿の著者にメールで通知します。
サンプル 4:投稿削除時にカスタム処理を実行
add_action('before_delete_post', 'custom_processing_on_delete');
function custom_processing_on_delete($post_id) {
// ここに独自の処理を書く
// 例: 外部APIに通知
}
このコードは、投稿が削除される際に特定のカスタム処理を実行する場所を提供します。
サンプル 5:削除された投稿のコメントを全て削除
add_action('before_delete_post', 'delete_comments_on_post_delete');
function delete_comments_on_post_delete($post_id) {
wp_delete_comments(array('post_id' => $post_id));
}
このコードは、削除された投稿に関連する全てのコメントを削除します。