Управление ревизиями и автосохранениями записей в WordPress
+4

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

Ревизии и автосохранение в WordPress

Ревизии и автосохранение в WordPress

Автосохранение — функция, сохраняющая в базу данных копию вашей записи с определённой периодичностью (по умолчанию 60 секунд). Автосохранение включено для всех страниц и записей. При автосохранении не перезаписывается оригинальный контент, а создается дополнительная копия, причём всегда в единственном экземпляре.

Ревизия (редакция) в WordPress — дополнительная копия записи или страницы в базе данных, создаваемая при сохранении записи (страницы). Ревизии не перезаписывают друг друга, а накапливаются. Так что при частом сохранении записи их может накопиться немалое количество, что отразится не может не отразится на объёме базы данных. По умолчанию количество создаваемых ревизий не ограничено.

Отображение редакций в WordPress

Отображение редакций в WordPress

Получилось так, что разработчики не предусмотрели ни отключение функции автосохранения, ни отключение функции создания ревизий записей (страниц).
Поэтому я сейчас и расскажу как это сделать.

Автосохранение, лично я, считаю полезной функцией и на своих сайтах не отключаю. Но для желающих это сделать приведу код.

Код для отключения автосохранения записей и страниц в WordPress (вставить в файл functions.php вашей темы)

function disableAutoSave(){
    wp_deregister_script('autosave');
}
add_action( 'wp_print_scripts', 'disableAutoSave' );

Также можно не отключать автосохранение записей в WordPress, а изменить периодичность, вставив следующий код в файл wp-config.php

define('AUTOSAVE_INTERVAL', time);

где time — время в секундах.

Например, если написать

define('AUTOSAVE_INTERVAL', 600);

автосохранения будут записываться раз в 10 минут.

А теперь продолжим про ревизии записей в WordPress.
Каждому понятно, что лишний объем базы данных — это не хорошо. Это может замедлить работу с базой данный. Большой объем БД может доставить неудобства при ее экспорте и импорте. Поэтому давайте отключим функцию создания ревизий.

Отключение ревизий в WordPress

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

define ('WP_POST_REVISIONS', false);

Также можно не отключать функцию создания ревизий в WordPress, а всего лишь ограничить их количество.

Так, например, вставив следующий код в файл wp-config.php вашего сайта

define ('WP_POST_REVISIONS', 3);

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

А как быть с теми ревизиями, которые уже созданы и находятся в базе данных. Как их удалить?

Очень просто!


Перед следующим действием желательно сделать бэкап базы данных.

Нужно отправить следующий запрос к базе данных

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'

Для этого можно воспользоваться phpMyAdmin или другим доступным инструментом для работы с базами данных.

И, напоследок, для тех кто не любит копаться в исходном коде, расскажу о простеньком плагине, который позволяет совершить все вышеописанные действия.


Перед установкой плагина желательно сделать бэкап базы данных.

Disable Revisions — так называется плагин для отключения ревизий и их удаления из базы данных в WordPress.

После установки плагина его нужно активировать в меню управления плагинами. Какие-либо настройки у плагина отсутствуют. После его активации отключается создание ревизий и удаляются уже имеющиеся ревизии из базы данных.

Если у вас возникают проблемы с распознаванием типов файлов, обратитесь за помощью к http://www.filetypes.ru/. Там вы сможете узнать что это за файл, и чем его открыть.

+4
Понравилась запись? Подпишитесь по RSS или E-mail!
Категории: WordPress, Плагины WordPress, Хаки Wordpress. Прямая ссылка на запись.

Комментарии к записи Управление ревизиями и автосохранениями записей в WordPress: 8

  1. Юлия Qween сказал(а):

    А в какое место вписывать код
    define (‘WP_POST_REVISIONS’, 3);
    В начало, в конец или в середину? Объясните поподробнее, пжл))

  2. Вадим сказал(а):

    В любом месте, где есть такое же слово define :), только строчкой ниже или выше

  3. Pingback: Памятка | Творческий Блог Михаила Мазеля

  4. Gold Blogging сказал(а):

    Спасибо! Наконец-то отключил автосохранение. Очень мешало.

  5. Gold Blogging сказал(а):

    Ан-нет… Всё равно при входе в ранее созданную запись пишет: «Найдена более свежая копия записи, сохранённая автоматически.»
    Вадим, как с этим бороться?

    • Вадим сказал(а):

      Увы, автосохранение всегда будет присутствовать. Отключить можно только ревизии.

  6. Вадим сказал(а):

    фрагмент файла конфигурации:
    define(‘DB_COLLATE’, »);
    define(‘WP_POST_REVISIONS’, 0);
    define(‘AUTOSAVE_INTERVAL’, 60000);

  7. wested сказал(а):

    при добавлении первого кода отключения автосохранения тема перестаёт работать.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *