Статьи

Как контролировать ревизии в WordPress

WordPress автоматически создает ревизии вашего контента. Каждый раз, когда вы сохраняете сообщение или страницу, старая версия сохраняется, поэтому вы можете вернуться к ней в любое время. Старые ревизии никогда не удаляются, поэтому у вас всегда есть полная история всех изменений страницы. Однако иногда необходимо провести небольшую уборку. Каждая ревизия требует отдельной строки в таблице сообщений WordPress и, возможно, нескольких записей в таблицах postmeta и term_relationships. Удаление старых версий освободит дисковое пространство и облегчит работу MySQL. Изменения в WordPress

Удаление старых ревизий

Я скажу это только один раз: СОЗДАЙТЕ СВОЮ БАЗУ ДАННЫХ! Мы собираемся запустить операторы SQL непосредственно в ваших таблицах MySQL, и одна маленькая ошибка может помешать вашей установке WordPress. Во-первых, вам нужно найти префикс таблицы WordPress, который указан в следующей строке wp-config.php:

$table_prefix  = 'wp_';

wp_ является значением по умолчанию, но его можно изменить, чтобы обеспечить вашей установке дополнительную безопасность. Мы предполагаем, что wp_ был указан в следующем коде. Чтобы удалить все ревизии для всех страниц и постов, запустите инструмент администрирования MySQL, такой как phpMyAdmin, и выполните следующую инструкцию SQL:

 DELETE a,b,cFROM 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';

(Не забудьте изменить все ссылки на таблицы с «wp_» на префикс таблицы при необходимости.)

Совет: SQL Shenanigans

Большое спасибо Michael Ambrosio за то, что он выделил тонкую проблему с этим оператором SQL, которая может привести к удалению ссылок WordPress. Посмотрите его статью для получения дополнительной информации …

Если это слишком серьезно, вы можете удалить все исправления до определенной даты, например, следующее утверждение удалит все исправления, кроме тех, которые были сделаны после 1 января 2010 года:

 DELETE a,b,cFROM 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'AND a.post_date < '2010-01-01';

(Обратите внимание, что даты MySQL указываются в формате YYYY-MM-DD.)

Отключение или ограничение ревизий

Добавьте следующее заявление в ваш файл WordPress wp-config.php, чтобы навсегда отключить ревизии после публикации:

 define('WP_POST_REVISIONS', false);

Значение может быть установлено в «true» для повторного включения revision. Кроме того, вы можете использовать положительное целое число, чтобы ограничить количество разрешенных ревизий, например

 define('WP_POST_REVISIONS', 5);

Это создаст максимум 5 ревизий на пост, плюс одну для целей автосохранения. Старые версии будут автоматически удалены.

Плагины для WordPress

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