Остановить wordpress от отправки сообщений модерации

Этот вопрос был первоначально отправлен в stackoverflow: https://stackoverflow.com/questions/11435952/stop-wordpress-from-sending-out-moderation-emails, но после подсказки от @MaxGherkins. Я размещаю измененную версию здесь и для Помогите.

У меня возникли проблемы с установкой wordpress, отправляющей электронные письма администратору сайта каждый раз, когда комментарий подходит для модерации.
Это также относится к комментариям спама, которые приводят к тому, что администратор сайта получает много нежелательных писем в своем почтовом ящике.

Каждый раз, когда я решаю эту проблему, я получаю ответ «Просто зайдите в Настройки -> Дискуссия и откройте« Комментарий для модерации », но, к сожалению, это не помогает мне.

Итак, вот мои настройки (некоторые из них могут быть неактуальными):

  1. Я использую WordPress, встроенный в систему комментариев. Нет комментариев или комментариев в facebook.
  2. Я установил плагин Akismet. Я попытался отключить плагин, но я все равно получаю письма.
  3. Оба «Кто-то отправляет комментарий» и «Комментарий удерживается для модерации» НЕ проверяется в разделе «Настройки» -> «Обсуждение» -> «Отправить мне по электронной почте всякий раз» на сайтах.
  4. Вам не нужно войти в систему, чтобы написать комментарий
  5. Установка WP первоначально была установкой WordPress MU, но я обновил ее до 3.x, поэтому теперь она встроена в обычную установку WordPress. Установка запускает много блогов с разными именами доменов, и проблема возникает во всех блогах AFAIK.
  6. В большинстве блогов используется «Яшфа БРЕНД!». тема
  7. Некоторая информация из базы данных:

    Все блоги находятся в одной базе данных с префиксом 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) 

Электронная почта модерации выглядит так:


Тема: [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 : fweuh3298f9wefg923g329@jkg23ru89g9werhj239r8h238t923.asdfhio 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_ *.

Solutions Collecting From Web of "Остановить wordpress от отправки сообщений модерации"

Я не могу дать объяснение, почему это происходит, но я могу дать вам быстрое решение, чтобы заставить его замолчать.

Ответственной за функцию является wp_notify_moderator , которая является подключаемой функцией . Вы можете скопировать содержимое функции в свой собственный плагин и изменить его, чтобы return true в случае электронной почты модератора комментариев.

после строки:

 $comment = get_comment($comment_id); 

Добавить:

 if( empty( $comment->comment_type ) ) return true; 

Это может быть не долгосрочное решение, но оно даст вложенным почтам отдых, пока он не будет отсортирован в другом месте.