Wordpress: автоматически удалять сообщения, возраст которых x? - PullRequest
0 голосов
/ 15 марта 2011

В течение долгого времени я искал плагин, который будет удалять сообщения старше определенного возраста (например, 30 дней).Каков наилучший способ сделать это?

Ответы [ 3 ]

5 голосов
/ 16 марта 2011

Вот некоторый SQL, который найдет каждый пост, который был в течение 30 дней или более:

SELECT * FROM `wp_posts`
WHERE `post_type` = 'post'
AND DATEDIFF(NOW(), `post_date`) > 30

Чтобы удалить все сообщения, вы можете заменить SELECT * FROM на DELETE FROM - но обязательно сделайте резервную копию, прежде чем сделать это!

Затем вы можете просто cron, как вам нравится, будь то сценарий оболочки, сценарий PHP или все, что вам больше всего удобно.

4 голосов
/ 04 июля 2013
delete a,b,c,d
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON ( a.ID = b.object_id )
LEFT JOIN wp_postmeta c ON ( a.ID = c.post_id )
LEFT JOIN wp_term_taxonomy d ON ( d.term_taxonomy_id = b.term_taxonomy_id )
LEFT JOIN wp_terms e ON ( e.term_id = d.term_id )
WHERE e.term_id =<category id>
AND a.post_type = 'post'
AND DATEDIFF(NOW(), a.post_date) > 30

Ссылка

0 голосов
/ 27 мая 2013

Удалить 30-дневную пост команду:

delete FROM `wp_posts`
WHERE `post_type` = 'post'
AND DATEDIFF(NOW(), `post_date`) > 30
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...