この質問はもともとstackoverflowで投稿されました: https://stackoverflow.com/questions/11435952/stop-wordpress-from-sending-out-moderation-emails しかし、@ MaxGherkinsからの助言の後に、私はまた助けのために修正版をここに投稿しています。
Wordpressのインストールでサイト管理者に電子メールを送信するのに問題があります。
これはスパムのコメントにも当てはまり、サイト管理者は彼の受信箱にたくさんのジャンクメールを受け取ることになります。
この問題をGoogleで見るたびに、「設定 - >ディスカッション」の順にクリックして、「コメントを控えめにします」という回答が表示されますが、残念ながらこれは役に立ちません。
だから、ここで私の設定は次のとおりです(これらのいくつかは無関係かもしれません):
データベースからの情報
すべてのブログは、wp_X_というプレフィックスが付いた同じデータベースにあります。
これはランダムなブログからの出力です。
mysql> SELECT * FROM wp_1_options WHERE option_name LIKE "%notify";
+-----------+---------+-------------------+--------------+----------+
| option_id | blog_id | option_name | option_value | autoload |
+-----------+---------+-------------------+--------------+----------+
| 10 | 0 | comments_notify | | yes |
| 32 | 0 | moderation_notify | | yes |
+-----------+---------+-------------------+--------------+----------+
2 rows in set (0.01 sec)
mysql> SELECT * FROM wp_50_options WHERE option_name LIKE "%notify";
+-----------+---------+-------------------+--------------+----------+
| option_id | blog_id | option_name | option_value | autoload |
+-----------+---------+-------------------+--------------+----------+
| 11 | 0 | comments_notify | | yes |
| 31 | 0 | moderation_notify | | yes |
+-----------+---------+-------------------+--------------+----------+
2 rows in set (0.00 sec)
mysql> SELECT * FROM wp_100_options WHERE option_name LIKE "%notify";
+-----------+---------+-------------------+--------------+----------+
| option_id | blog_id | option_name | option_value | autoload |
+-----------+---------+-------------------+--------------+----------+
| 10 | 0 | comments_notify | | yes |
| 30 | 0 | moderation_notify | | yes |
+-----------+---------+-------------------+--------------+----------+
2 rows in set (0.00 sec)
モデレートのEメールは以下のようになります。
件名:[SITENAME]管理者権限: "スパムコメントのテスト"
体:
A new comment on the post 78 "Test spam comments" is waiting for your approval
http://url/test-spam-comments/
Author : djqw21208ryfg23 (IP: XXX.XXX.XXX.XXX , XXX.XXX.XXX.XXX)
E-mail : [email protected]
URL : http://feg239r239f9fg7329rfg322379fg23f3
Whois : http://ws.arin.net/cgi-bin/whois.pl?queryinput=XXX.XXX.XXX.XXX
Comment:
ugly spam comment goes here...
Approve it: http://url/wp-admin/comment.php?action=mac&c=XXXXX
Delete it: http://url/wp-admin/comment.php?action=cdc&c=XXXXX
Spam it: http://url/wp-admin/comment.php?action=cdc&dt=spam&c=XXXXX
Currently 0 comments are waiting for approval.
Please visit the moderation panel:
http://url/wp-admin/moderation.php
「設定」 - >「ディスカッション」の下の電子メール設定をオフにしてもデータベースで正しく表示されているのに、なぜこれらの電子メールを受信し続けるのですか。
私はwp_1_ *テーブルに属するブログでテストしています。
私はなぜこれが起こっているのかについて説明することはできませんが、私はあなたにそれを沈黙させるための迅速な修正を与えることができます。
責任ある関数は wp_notify_moderator
で、これは プラグイン可能関数 です。あなたはあなた自身のプラグインに関数の内容をコピーして、コメントモデレートEメールの場合にはそれをreturn true
に修正することができます。
行の後:
$comment = get_comment($comment_id);
追加:
if( empty( $comment->comment_type ) ) return true;
これは長期的な解決策ではないかもしれませんが、別の方法でソートされるまで受信箱に残りを与えます。