Deaktivieren Sie WP-Benachrichtigungen, um eigene Posts zu kommentieren

Wie / wo kann ich WP-E-Mail-Benachrichtigungen deaktivieren, um eigene Posts zu kommentieren?

Ich möchte dies global für alle Benutzer auf der Website tun, nicht nur pro Benutzer durch WP-Admin.

Gibt es irgendwelche Haken, mit denen ich diese E-Mails löschen kann?

Vielen Dank!

Solutions Collecting From Web of "Deaktivieren Sie WP-Benachrichtigungen, um eigene Posts zu kommentieren"

Die function, die E-Mails an den Postautor sendet, heißt wp_notify_postauthor() und befindet sich in /wp-includes/pluggable.php . Dies bedeutet, dass die function “steckbar” ist und von einer anderen function gleichen Namens überschrieben werden kann. Wir können dafür ein einfaches Plugin erstellen.

Dies ist der Code, den wir der function hinzufügen werden, um zu überprüfen, ob der Autor einen eigenen Kommentar verfasst.

 if ( $comment->comment_author_email == $author->user_email ) { return false; } 

Und hier ist das fertige Plugin für WordPress Version 3.6. Dies muss in einer PHP-Datei namens custom-author-notification.php gespeichert und in einem Ordner namens custom-author-notification in Ihrem Plugins-Verzeichnis /wp-content/plugins/ gespeichert /wp-content/plugins/ .

 < ?php /* Plugin Name: Custom Author Notification Description: Stops authors from receiving emails when they comment on their own posts. Replaces the default wp_notify_postauthor() function in WordPress v3.6. Version: 1.0 */ if ( ! function_exists('wp_notify_postauthor') ) : function wp_notify_postauthor( $comment_id, $comment_type = '' ) { $comment = get_comment( $comment_id ); $post = get_post( $comment->comment_post_ID ); $author = get_userdata( $post->post_author ); // The comment was left by the author if ( $comment->user_id == $post->post_author ) return false; // The comment was also left by the author. // Checks comment author email against post author email. if ( $comment->comment_author_email == $author->user_email ) { return false; } // The author moderated a comment on his own post if ( $post->post_author == get_current_user_id() ) return false; // The post author is no longer a member of the blog if ( ! user_can( $post->post_author, 'read_post', $post->ID ) ) return false; // If there's no email to send the comment to if ( '' == $author->user_email ) return false; $comment_author_domain = @gethostbyaddr($comment->comment_author_IP); // The blogname option is escaped with esc_html on the way into the database in sanitize_option // we want to reverse this for the plain text arena of emails. $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES); if ( empty( $comment_type ) ) $comment_type = 'comment'; if ('comment' == $comment_type) { $notify_message = sprintf( __( 'New comment on your post "%s"' ), $post->post_title ) . "\r\n"; /* translators: 1: comment author, 2: author IP, 3: author domain */ $notify_message .= sprintf( __('Author : %1$s (IP: %2$s , %3$s)'), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\r\n"; $notify_message .= sprintf( __('E-mail : %s'), $comment->comment_author_email ) . "\r\n"; $notify_message .= sprintf( __('URL : %s'), $comment->comment_author_url ) . "\r\n"; $notify_message .= sprintf( __('Whois : http://whois.arin.net/rest/ip/%s'), $comment->comment_author_IP ) . "\r\n"; $notify_message .= __('Comment: ') . "\r\n" . $comment->comment_content . "\r\n\r\n"; $notify_message .= __('You can see all comments on this post here: ') . "\r\n"; /* translators: 1: blog name, 2: post title */ $subject = sprintf( __('[%1$s] Comment: "%2$s"'), $blogname, $post->post_title ); } elseif ('trackback' == $comment_type) { $notify_message = sprintf( __( 'New trackback on your post "%s"' ), $post->post_title ) . "\r\n"; /* translators: 1: website name, 2: author IP, 3: author domain */ $notify_message .= sprintf( __('Website: %1$s (IP: %2$s , %3$s)'), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\r\n"; $notify_message .= sprintf( __('URL : %s'), $comment->comment_author_url ) . "\r\n"; $notify_message .= __('Excerpt: ') . "\r\n" . $comment->comment_content . "\r\n\r\n"; $notify_message .= __('You can see all trackbacks on this post here: ') . "\r\n"; /* translators: 1: blog name, 2: post title */ $subject = sprintf( __('[%1$s] Trackback: "%2$s"'), $blogname, $post->post_title ); } elseif ('pingback' == $comment_type) { $notify_message = sprintf( __( 'New pingback on your post "%s"' ), $post->post_title ) . "\r\n"; /* translators: 1: comment author, 2: author IP, 3: author domain */ $notify_message .= sprintf( __('Website: %1$s (IP: %2$s , %3$s)'), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\r\n"; $notify_message .= sprintf( __('URL : %s'), $comment->comment_author_url ) . "\r\n"; $notify_message .= __('Excerpt: ') . "\r\n" . sprintf('[...] %s [...]', $comment->comment_content ) . "\r\n\r\n"; $notify_message .= __('You can see all pingbacks on this post here: ') . "\r\n"; /* translators: 1: blog name, 2: post title */ $subject = sprintf( __('[%1$s] Pingback: "%2$s"'), $blogname, $post->post_title ); } $notify_message .= get_permalink($comment->comment_post_ID) . "#comments\r\n\r\n"; $notify_message .= sprintf( __('Permalink: %s'), get_permalink( $comment->comment_post_ID ) . '#comment-' . $comment_id ) . "\r\n"; if ( user_can( $post->post_author, 'edit_comment', $comment_id ) ) { if ( EMPTY_TRASH_DAYS ) $notify_message .= sprintf( __('Trash it: %s'), admin_url("comment.php?action=trash&c=$comment_id") ) . "\r\n"; else $notify_message .= sprintf( __('Delete it: %s'), admin_url("comment.php?action=delete&c=$comment_id") ) . "\r\n"; $notify_message .= sprintf( __('Spam it: %s'), admin_url("comment.php?action=spam&c=$comment_id") ) . "\r\n"; } $wp_email = 'wordpress@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME'])); if ( '' == $comment->comment_author ) { $from = "From: \"$blogname\" < $wp_email>"; if ( '' != $comment->comment_author_email ) $reply_to = "Reply-To: $comment->comment_author_email"; } else { $from = "From: \"$comment->comment_author\" < $wp_email>"; if ( '' != $comment->comment_author_email ) $reply_to = "Reply-To: \"$comment->comment_author_email\" < $comment->comment_author_email>"; } $message_headers = "$from\n" . "Content-Type: text/plain; charset=\"" . get_option('blog_charset') . "\"\n"; if ( isset($reply_to) ) $message_headers .= $reply_to . "\n"; $notify_message = apply_filters('comment_notification_text', $notify_message, $comment_id); $subject = apply_filters('comment_notification_subject', $subject, $comment_id); $message_headers = apply_filters('comment_notification_headers', $message_headers, $comment_id); @wp_mail( $author->user_email, $subject, $notify_message, $message_headers ); return true; } endif;