Автоматическое удаление старых сообщений Wordpress в определенных категориях через SQL

Я нашел следующий SQL-скрипт здесь, в другом потоке:

DELETE FROM `wp_posts`
WHERE `post_type` = 'post'
AND DATEDIFF(NOW(), `post_date`) > 120

Этот скрипт найдет и удалит все сообщения старше 120 дней. Однако мне интересно, можно ли это сделать только в определенных категориях. Я хотел бы сохранить все старые сообщения в некоторых категориях, но удалить все старые сообщения в других.

Кроме того, если да, то есть ли способ заставить этот скрипт запускаться каждый день?

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


person Ca9ine    schedule 03.10.2012    source источник


Ответы (1)


Вам лучше использовать wp_delete_post ( http://codex.wordpress.org/Function_Reference/wp_delete_post) чтобы делать то, что вы хотите, потому что в базе данных есть много отношений между сообщениями, комментариями и т. д. => http://codex.wordpress.org/images/9/9e/WP3.0-ERD.png

Чтобы запускать этот скрипт каждый день, вы должны выполнить задание CRON на своем сервере: http://www.thesitewizard.com/general/set-cron-job.shtml

Надеюсь, поможет

person Community    schedule 03.10.2012
comment
Спасибо за ответ. Все посты, которые я собираюсь удалить, без комментариев и агрегированы. Вы все еще имеете в виду, что я должен изучить то, что вы разместили здесь, несмотря ни на что? - person Ca9ine; 03.10.2012
comment
Следует сказать, что я говорю о нескольких тысячах постов. У меня может быть даже до 100 000 постов... :/ - person Ca9ine; 03.10.2012
comment
Не обращайте внимания на количество сообщений, вы получаете список соответствующих сообщений, используя собственный запрос SQL, как вы писали ранее, и используете результат с помощью wp_delete_post($id). В вашем скрипте вам просто нужно сделать это: запросить результат SQL/сохранить результат в массиве/результат Foreach в массиве wp_delete_post($id) - person ; 03.10.2012
comment
Не могли бы вы показать мне, как, где и что делать? Я не писал то, что выкладывал, просто нашел. Все, что я знаю, это куда бежать, и, боюсь, на этом все. Как я уже сказал, я очень зеленый в этой области, и я, честно говоря, понятия не имею, с чего даже начать. - person Ca9ine; 03.10.2012