ワードプレスのwp_delete_postアクションの使用方法・解説

概要

wp_delete_post アクションは、投稿情報を削除する際にトリガーされるフックです。このアクションは、削除対象の投稿が実際に削除される直前に実行され、開発者が特定の処理を追加するために使用します。よく使われる場面には以下のようなものがあります:

  1. 削除時に関連データのクリーンアップ
  2. ログ記録のためのカスタム処理
  3. ユーザーへの通知(メール送信など)
  4. キャッシュのクリア
  5. カスタムメタデータの削除
  6. 統計データの更新
  7. 移動先のステータス変更
  8. 他のプラグインとの連携処理

構文

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));
}

このコードは、削除された投稿に関連する全てのコメントを削除します。

この関数について質問する


上の計算式の答えを入力してください