The comment_on_trash WordPress PHP action fires when a comment is attempted on a trashed post.
Usage
add_action('comment_on_trash', 'your_custom_function', 10, 1);
function your_custom_function($comment_post_id) {
// your custom code here
}
Parameters
- $comment_post_id (int) – The ID of the trashed post.
More information
See WordPress Developer Resources: comment_on_trash
Examples
Notify admin when a comment is attempted on a trashed post
This code sends an email notification to the admin when someone tries to comment on a trashed post.
add_action('comment_on_trash', 'notify_admin_on_trashed_comment', 10, 1);
function notify_admin_on_trashed_comment($comment_post_id) {
$admin_email = get_option('admin_email');
$subject = 'Comment attempted on trashed post';
$message = 'A user tried to comment on a trashed post with ID: ' . $comment_post_id;
wp_mail($admin_email, $subject, $message);
}
Log comment attempts on trashed posts
This code logs the trashed post ID when a comment attempt is made.
add_action('comment_on_trash', 'log_trashed_comment_attempts', 10, 1);
function log_trashed_comment_attempts($comment_post_id) {
error_log('Comment attempted on trashed post ID: ' . $comment_post_id);
}
Redirect user when attempting to comment on a trashed post
This code redirects the user to the homepage when they try to comment on a trashed post.
add_action('comment_on_trash', 'redirect_user_trashed_comment', 10, 1);
function redirect_user_trashed_comment($comment_post_id) {
wp_redirect(home_url());
exit;
}
Display a custom message when a user tries to comment on a trashed post
This code displays a custom message to the user when they attempt to comment on a trashed post.
add_action('comment_on_trash', 'display_custom_message', 10, 1);
function display_custom_message($comment_post_id) {
wp_die('Sorry, you cannot comment on a trashed post.', 'Comment not allowed');
}
Prevent comment form from showing on trashed posts
This code prevents the comment form from showing on trashed posts by checking the post status.
add_filter('comments_open', 'hide_comment_form_on_trashed_posts', 10, 2);
function hide_comment_form_on_trashed_posts($open, $post_id) {
$post_status = get_post_status($post_id);
if ($post_status == 'trash') {
return false;
}
return $open;
}