The notify_post_author WordPress PHP filter allows you to control whether or not to send the post author new comment notification emails, overriding the site setting.
Usage
add_filter( 'notify_post_author', 'your_custom_function', 10, 2 );
function your_custom_function( $maybe_notify, $comment_id ) {
// your custom code here
return $maybe_notify;
}
Parameters
$maybe_notify(bool): Whether to notify the post author about the new comment.$comment_id(int): The ID of the comment for the notification.
More information
See WordPress Developer Resources: notify_post_author
Examples
Disable comment notifications for all posts
Disable comment notifications for all authors, regardless of site settings.
function disable_comment_notifications( $maybe_notify, $comment_id ) {
return false;
}
add_filter( 'notify_post_author', 'disable_comment_notifications', 10, 2 );
Enable comment notifications for specific author
Enable comment notifications for a specific author, overriding the site settings.
function enable_notifications_for_author( $maybe_notify, $comment_id ) {
$comment = get_comment( $comment_id );
$post = get_post( $comment->comment_post_ID );
if ( $post->post_author == 5 ) { // Change 5 to the desired author ID
return true;
}
return $maybe_notify;
}
add_filter( 'notify_post_author', 'enable_notifications_for_author', 10, 2 );
Disable notifications for comments on specific post type
Disable comment notifications for a specific custom post type, overriding the site settings.
function disable_notifications_for_post_type( $maybe_notify, $comment_id ) {
$comment = get_comment( $comment_id );
$post = get_post( $comment->comment_post_ID );
if ( $post->post_type == 'custom_post_type' ) {
return false;
}
return $maybe_notify;
}
add_filter( 'notify_post_author', 'disable_notifications_for_post_type', 10, 2 );
Enable notifications for comments with specific keyword
Enable comment notifications if the comment contains a specific keyword, overriding the site settings.
function enable_notifications_for_keyword( $maybe_notify, $comment_id ) {
$comment = get_comment( $comment_id );
if ( strpos( $comment->comment_content, 'important' ) !== false ) {
return true;
}
return $maybe_notify;
}
add_filter( 'notify_post_author', 'enable_notifications_for_keyword', 10, 2 );
Disable notifications for comments by logged-out users
Disable comment notifications for comments made by logged-out users, overriding the site settings.
function disable_notifications_for_guests( $maybe_notify, $comment_id ) {
$comment = get_comment( $comment_id );
if ( $comment->user_id == 0 ) {
return false;
}
return $maybe_notify;
}
add_filter( 'notify_post_author', 'disable_notifications_for_guests', 10, 2 );