Удаляем старые записи в WordPress

1. Заходим в phpmyadmin и выбираем там нужную вам базу сайта.
2. Выбираем закладку SQL.
3. Вводим туда следующий запрос:

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

Здесь 1200 — это возраст постов в днях от текущей даты, старше которых вы хотите удалить.

Но это не всё. В результате у нас останутся повисшие строки в wp_postmeta,которые были связаны с уже удаленными постами. Их тоже надо прибить:

DELETE pm FROM wp_postmeta pm
LEFT JOIN wp_posts wp ON wp.ID = pm.post_id
WHERE wp.ID IS NULL

Ну и в конце концов надо будет почистить wp_term_relationships на предмет связей, которые вели к уже удаленным постам, а теперь не ведут никуда. Для начала давайте посмотрим, сколько у вас этого гугна:

SELECT * FROM wp_term_relationships
LEFT JOIN wp_posts ON wp_term_relationships.object_id = wp_posts.ID
WHERE wp_posts.ID is NULL;

Этот запрос ничего не чистит, он вам просто выведет связи, которые никуда не ведут.

DELETE wp_term_relationships FROM wp_term_relationships
LEFT JOIN wp_posts ON wp_term_relationships.object_id = wp_posts.ID
WHERE wp_posts.ID is NULL;

Ну вот, теперь прекрасно. Только не забудьте оптимизировать очищенные таблицы.

Настоящий материал самостоятельно опубликован в нашем сообществе пользователем proper на основании действующей редакции Пользовательского Соглашения. Если вы считаете, что такая публикация нарушает ваши авторские и/или смежные права, вам необходимо сообщить об этом администрации сайта на EMAIL abuse@newru.org с указанием адреса (URL) страницы, содержащей спорный материал. Нарушение будет в кратчайшие сроки устранено, виновные наказаны.

You may also like...


Комментарии