The delete_post WordPress PHP action is triggered right before a post is deleted from the database.
Usage
add_action('delete_post', 'your_custom_function_name');
function your_custom_function_name($post_id) {
// your custom code here
}
Parameters
$post_id(int) – The ID of the post being deleted.
More information
See WordPress Developer Resources: delete_post
Examples
Log post deletion
Log the deletion of a post in a separate log file.
add_action('delete_post', 'log_post_deletion');
function log_post_deletion($post_id) {
// Log the post ID to a file
error_log("Deleted post ID: {$post_id}\n", 3, '/path/to/your/logs/post_deletions.log');
}
Delete associated meta data
Delete associated custom meta data when a post is deleted.
add_action('delete_post', 'delete_post_meta_data');
function delete_post_meta_data($post_id) {
// Delete custom meta data with 'custom_meta_key'
delete_post_meta($post_id, 'custom_meta_key');
}
Send an email notification
Send an email notification to the site administrator when a post is deleted.
add_action('delete_post', 'send_email_on_post_deletion');
function send_email_on_post_deletion($post_id) {
$admin_email = get_option('admin_email');
$subject = "Post Deleted: {$post_id}";
$message = "A post with ID {$post_id} was deleted.";
wp_mail($admin_email, $subject, $message);
}
Remove related attachments
Delete related attachments when a post is deleted.
add_action('delete_post', 'delete_related_attachments');
function delete_related_attachments($post_id) {
$attachments = get_attached_media('image', $post_id);
foreach ($attachments as $attachment) {
wp_delete_attachment($attachment->ID, true);
}
}
Remove post from custom cache
Remove a post from a custom cache when it is deleted.
add_action('delete_post', 'remove_post_from_custom_cache');
function remove_post_from_custom_cache($post_id) {
// Remove the post from your custom cache
your_custom_cache_function('remove', $post_id);
}