Ответы:
Это гораздо более безопасный запрос, и он удалит связанные записи из postmeta и term_relationship, в отличие от запроса deathlocks в его ответе.
Измените {id} на id каждой таблицы сообщений блога. Вы можете объединить этот запрос для одновременного запуска всех таблиц записей, но сначала попробуйте выполнить это для одной таблицы. Я использовал это много раз на одной установке WP.
DELETE a,b,c
FROM wp_{id}_posts a
LEFT JOIN wp_{id}_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_{id}_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision'
После запуска оптимизируйте базу данных в phpmyadmin.
И добавьте эту строку в верхней части wp-config.php, чтобы предотвратить будущие изменения:
define('WP_POST_REVISIONS', 0);
или сохранить одну ревизию:
define('WP_POST_REVISIONS', 1);
Существует также плагин WP Optimize, который может помочь вам сделать это.
С веб-сайта:
WP-Optimize - это инструмент для очистки и оптимизации баз данных WordPress 2.9 ++. Для оптимизации таблиц базы данных не требуется PhpMyAdmin.
Позволяет удалять ревизии постов, комментарии в очереди спама, неподтвержденные комментарии за несколько кликов.
Чтобы удалить все ваши ревизии Wordpress, вы можете использовать этот запрос:
DELETE FROM wp_posts WHERE post_type = "revision";
DELETE FROM wp_n_posts WHERE post_type = "revision"
; для n раз, верно? но это довольно скучно :(
Вы также можете добавить этот код в functions.php
файл вашей темы :
if (!defined('WP_POST_REVISIONS')) define('WP_POST_REVISIONS', 3);
if (!defined('WP_POST_REVISIONS')) define('WP_POST_REVISIONS', false);
Этот код проверяет, был ли установлен WP_POST_REVISIONS
лимит wp-config.php
, а если нет, то передает параметр в функцию, которая ограничивает пост-ревизии. В приведенном выше примере сообщения ограничены 3 ревизиями.
Это хорошее решение при создании тем для людей, которые не знают, как (или не хотят) добавлять код.
Взято с wp-functions.com
Спасибо за ответ, markratledge. Что-то в синтаксисе относительно {id} не работает для меня. Я изменил {id} на 4009, один из моих почтовых идентификаторов, но безуспешно. Я нашел решение на https://dev-notes.eu/2017/11/manage-and-safely-delete-revisions-in-wordpress/
DELETE a,b,c 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)
WHERE a.post_type = 'revision';
Это работало нормально.