Intereting Posts
Показать сообщения за месяц Получить категории для определенной должности – Пользовательский тип сообщения Пользовательский поиск WordPress by post_type Удалить текущий класс из пунктов подменю Как отключить разбивку на страницы? Как использовать has_archive, но отключить фид для типа публикации? Все мои файлы находятся в моем блоге! Мне нужно решение синхронизации Страница категории отображает только сообщения из пользовательского типа Как получить значение настроек WordPress для настройки Enqueue javascript, который вставляет пользовательский php-виджет в построенный jQuery div Как удалить автор (ы) из определенных должностей Как публиковать сообщения с изображением в нем Показать специальное сообщение для личной страницы? WordPress post / page pagination (ссылки на страницы), чтобы вернуться к первому разделу Создание эскизов страниц в разных размерах

Как удалить одобренные спам-комментарии по дате?

Необходимо удалить 1000 комментариев спама в пределах диапазона данных, не удаляя законные комментарии

Solutions Collecting From Web of "Как удалить одобренные спам-комментарии по дате?"

К сожалению, WordPress не предоставляет никаких функций для выбора комментариев по диапазону дат, насколько мне известно. И хотя вы могли бы wp_delete_comment в цикле, это займет много времени.

Как показывает диаграмма отношений сущностей базы данных WordPress , комментарии ограничены тем, что они wp_comments таблице wp_commentmeta таблице wp_commentmeta , что удобно.

Используйте клиент командной строки MySQL или phpMyAdmin для прямого запроса запросов. Если ты:

 SELECT * FROM `wp_comments` LIMIT 1 

… вы увидите структуру данных комментариев. comment_date и comment_date_gmt – поля, с которыми вы будете играть BETWEEN . comment_date – это дата смещения комментария, установленная в настройках часового пояса, установленном в «Настройки / Общие». comment_date_gmt – это UTC + 0 время, универсальная правда.

 SELECT * FROM `wp_comments` WHERE `comment_date` BETWEEN '2010-01-15 00:00:00' AND '2012-01-15 00:00:00'; 

Не нужно объяснять. После того, как вы создали резервную копию своей базы данных (я действительно имею в виду ее, верните ее, пожалуйста, все может пойти не так), вы можете:

 DELETE FROM `wp_comments` WHERE `comment_date` BETWEEN '2010-01-15 00:00:00' AND '2012-01-15 00:00:00'; 

Теперь, когда структура базы данных показывает нам, мы останемся с затяжными метаданными в таблице wp_commentmeta .

 SELECT * FROM `wp_commentmeta` WHERE `comment_ID` NOT IN (SELECT `comment_ID` FROM `wp_comments`); 

Подзапрос позаботится об этом. Как только вы почувствуете себя комфортно, замените SELECT * для DELETE FROM .

Чтобы запланировать такие очистки, например «удалить все комментарии, которые были старше года», вы должны были бы wp_schedule_event эти запросы вместе с различными вариантами wp_schedule_event и класса wpdb для выпуска запросов. Чтобы построить дату, вы будете использовать функции даты, предлагаемые WordPress.