web-dev-qa-db-ja.com

新しいコメントを受信したときに送信される電子メールを編集する方法

私は複数の著者がいるサイトを持っていて、ユーザーが投稿にコメントすると、その著者は新しいコメントがあるという電子メールを受け取ります。このEメールは標準のWordPress形式で作成されています

New comment on your post "Test post for comment testing"
Author : Person (IP: 0.0.0.0 , netowrk) E-mail : [email protected]
URL    : 
Whois  : 
Comment: 
Test

You can see all comments on this post here: 
http://example.com/test-post

Permalink: http://example.com/test-post

このサイトはコメント欄にURLを使用していないので、これは常に空白です。また、コメント投稿者の名前とメールアドレスを残して、WHOISとIPとネットワークの詳細を削除したいと思います。

これを編集するにはどうすればいいですか。できればプラグインなしでできれば。

3
Michael N

comment_notification_textフィルタは、wp-includes/pluggable.php関数のwp_notify_postauthorにあります。 $notify_messageのものをコピーして貼り付け、不要なものを編集することができます。

function wpd_comment_notification_text( $notify_message, $comment_id ){
    // get the current comment and post data
    $comment = get_comment( $comment_id );
    $post = get_post( $comment->comment_post_ID );
    // don't modify trackbacks or pingbacks
    if( '' == $comment->comment_type ){
        // build the new message text
        $notify_message  = sprintf( __( 'New comment on your post "%s"' ), $post->post_title ) . "\r\n";
        $notify_message .= sprintf( __('Author : %1$s'), $comment->comment_author ) . "\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 .= __('Comment: ') . "\r\n" . $comment->comment_content . "\r\n\r\n";
        $notify_message .= __('You can see all comments on this post here: ') . "\r\n";
        $notify_message .= get_permalink($comment->comment_post_ID) . "#comments\r\n\r\n";
        $notify_message .= sprintf( __('Permalink: %s'), get_comment_link( $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";
        }
    }
    // return the notification text
    return $notify_message;
}
add_filter( 'comment_notification_text', 'wpd_comment_notification_text', 20, 2 );
4
Milo