Ревизии или редакции записей и страниц в WordPress

Дорогие друзья, все мы знаем, что WordPress растёт не по дням, а по часам. Как не странно, но стремление разработчиков сделать своё детище более гибким и простым вылилось в его прожорливость и огромный вес.

Ревизии или редакции записей и страниц в WordPress

Возьмём, к примеру, публикуемые нами посты. С недавних пор WordPress обеспечивает их автосохраннение и хранение редакция. Автосохранение постов – это автоматическое сохранение поста как его промежуточную редакцию. Сама редакция поста (англ. revision) – представляет собой дубликат поста в базе данных. Таким образом, мы всегда можем посмотреть, как выглядел пост до его изменения. Другими словами, мы получили ряд полезных фишек, которые потребовали дополнительные ресурсы.

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

Управление ревизиями в WordPress

Конечно, я могу рассказать вам о структуре баз данных в WordPress… но оно вам надо? Так что не будем вдаваться в детали и остановимся на том, что доступно и понятно большинству. В частности, мы скажем, что редакция поста – это дубликат записи или страницы в базе данных. Для контроля ревизий в WordPress существует константа WP_POST_REVISIONS. Она может иметь одно из следующих значений:

  • true (по умолчанию) или -1: хранить все редакции;
  • false или 0: не сохранять ревизии, за исключением одной для автосохранения;
  • число больше нуля: сохранять указанное количество ревизий и ещё одну для автосохранения.

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

define('WP_POST_REVISIONS', 0);

перед:

/** Инициализирует переменные WordPress и подключает файлы. */
require_once(ABSPATH . 'wp-settings.php');
?>

Проблема в том, что это не избавит вас от одной ревизии записи или страницы для автосохранения. В принципе, используя константу AUTOSAVE_INTERVAL (тоже в wp-config.php), вы можете указать количество секунд, через которое будет произведено автосохранение. Например:

define('AUTOSAVE_INTERVAL', 86400); // seconds (Default: 1 day)

Проблема в том, что это константа не способно отключить автосохранение. Конечно, есть хак позволяющий таки отключить автосохранение. В частсноти, в файл functions.php используемой темы достаточно добавить следующий PHP-код:

add_action( 'admin_init', 'disable_autosave' );
function disable_autosave() {
 wp_deregister_script('autosave');
}

Вот только это может привести к проблемам с предварительным просмотром, если вы предварительно не сохраните пост вручную. Понятно, что в этом случае данные будут утеряны.

В общем, вариантов много, но сути они не меняют. Поэтому я рекомендую использовать следующие два простых и удобных WordPress плагина – Revision Control и Delete-Revision. Познакомимся с ними ближе.

Revision Control

Revision Control – это бесплатный плагин от Диона Халса (Dion Hulse) для управления ревизиями (редакциями) заметок и страниц в WordPress.

Установив и активизировав этот плагин, в меню «Параметры» вы увидите пункт «Ревизии» - кликните его. На открывшейся странице «Настройки управления ревизиями» вы сможете указать статус ревизий по умолчанию для записей и страниц. В частности, выберите вариант «Не хранить ревизии» или укажите количество допустимых ревизий.

Настройки управления ревизиями в WordPress

К слову, теперь в окне редактирования заметок или постов панели управления блогом появится новый элемент «Post Revisions» благодаря которому вы сможете увидеть все сопутствующие ревизии, удалить или сравнить, а также установить статус ревизии.

Post Revisions WordPress

Отдельно хочу отметить, что используя WordPress плагин Revision Control вам нет необходимости вносить какие-то изменения в wp-config.php блога, functions.php шаблона и т.д. Всё будет сделано автоматически и вполне себе оптимально.

Delete Revision

Delete Revision – это бесплатный плагин от gohsy, написанный в 2009 году и до сих пор не утратившем свою актуальность как простое и удобное средство для удаления лишних ревизий заметок и страниц, а также оптимизации базы данных.

После установки и активизации плагина перейдите в: Параметры > Delete-Revision. На открывшейся странице вы увидите две кнопки «Check Redundant Revision» и «Database Optimization».

Delete Revision WordPress

Нажав кнопку «Check Redundant Revision» вы получите все имеющиеся дубликаты записей и страниц (ревизий) в базе данных вашего блога. Нажмите кнопку «Yes, I would like to delete them!» и они будут удалены.

проверка наличия ревизий в базе данных WordPress

По сути, этот плагин выполняет для удаление ревизий вот такой простой SQL-запрос:

DELETE FROM wp_posts WHERE post_type = 'revision'

Тем не менее, это то, что будет не лишним. К слову, после удаления ревизий плагин Delete-Revision можно деактивировать.

Заключение

Надеюсь, что данный пост смог дать вам исчерпывающий ответ о том, что такое ревизии в WordPress и как с ними работать. Тем не менее, если у вас возникли вопросы или сложности – пишите, будем разбираться. А у меня всё. Спасибо за внимание. Удачи!

Twitter Facebook ВКонтакте Одноклассники Google+

4 комментария:

Nina
А я пользовалась одним из них. Сайт заметно разгрузился. А потом плагин убрала.Чего он там будет мешаться...
Константин Кирилюк
@Nina если вы о Delete Revision то его действительно можно отключить после чистки базы данных, а вот с Revision Control так не пойдёт - если он не активирован мусор будет множиться и опять придётся чистить.
Лариса Марштупа
Костя, давно не заглядывала, захожу сейчас - все изменилось - новый шаблон! Я тоже собираюсь менять одежку на своем Нео, но пока не нашлось ничего подходящего. Фото чудесное с кошками - и очень тонко отражает бытие блога, в котором включены ревизии)
Константин Кирилюк
@Лариса Марштупа Спасибо за тёплые слова! На самом деле, изменений не много, просто довел имеющейся шаблон до ума :)

В принципе, любой шаблон можно также заточить до нужной кондиции... даже дефолтный. Основная проблема - разобраться с тем же CSS. Ну, это самый простой вариант, после визуальной настройки шаблона в панели управления блогом.

Что же до ревизий, то их конечно лучше удалить и отключить, т.к. они занимают лишнее дисковое пространство на сервере. Особенно это актуально, когда включено кэширование и создаются копии страниц, что тоже занимают дисковое пространство. Удачи!
Отправить комментарий