Отключение ревизий (post revisions) в WordPress

Не так давно в WordPress появилась функция сохранения всех версий постов с возможностью сравнения изменений и отката версий — ревизии — почти как в WikiPedia. Функция, безусловно, хорошая, но её реализация мне не нравится. А именно: запись всех ревизий в таблицу wp_posts вместе с основным контентом. В итоге таблица постов раздувается в 2-5 раз, что крайне негативно сказывается на работе системы. Ну зачем-зачем!? Ревизии нужны только в административном режиме — почему бы не сделать отдельную таблицу для этого?

И вообще, они имеют смысл лишь тогда, когда несколько человек управляют сайтом. Но нет даже стандартной возможности отключить запись ревизий. Приходится вносить изменения в файлы системы и удалять вручную ненужные записи в БД:

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";

Сегодня на Ultra-Music удалил таким образом 660 записей — представляете!

Короче, решено было написать плагин, который при активации почистит таблицы, удалив (внимание!) все записи ревизий, и отключит возможность записи новых ревизий. Итак, вуаля, первый плагин, который я запостил на wordpress.org — Disable Revisions.

Если бы я выложил все плагины, которые писал, было б уже порядком двух десятков :)

07.12.2008. Раздел: WordPress. Ключевые слова: .

Комментариев: 18 RSS

  1. [...] Slaver, спасибо! Теги: WordPress, Плагины. RSS этого поста × Адрес трэкбэка [...]

  2. [...] вид шрифтов, обновил движок, поставил новый плагин, но это всё вам не [...]


  3. Az написал(а):

    так выложи ;)

    ответить


    Slaver ответил(а):

    Так выложил же :)

    ответить


    Az ответил(а):

    я про остальные.

    ответить


    Slaver ответил(а):

    Аааа… Ну там не так много прикладного характера плагинов — большинство писалось под конкретные проекты и задачи. Ну что-нибудь еще выложу :)

    ответить


  4. ioni написал(а):

    А у меня вопрос – плагин одноразово это делает – или при загрузке каждого поста или по крону?

    ответить


    Slaver ответил(а):

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

    ответить


    ioni ответил(а):

    Отлично!

    ответить


    Slaver ответил(а):

    Бэкап все равно нужно сделать :)

    ответить


  5. va написал(а):

    спасибо

    ответить


    Slaver ответил(а):

    На здоровье! :)

    ответить


  6. aliaksei написал(а):

    Нашел как-то в конфиге :)

    // define(‘WP_POST_REVISIONS’, ’5′); // кіраванне колькасцью рэвізій. 0-адключа іх увогуле, кожная іншая лічба пазначае максімальную колькасць рэвізій кожнага запісу.

    ответить


    Slaver ответил(а):

    Я в плагин включил отключение (хи-хи) WP_POST_REVISIONS, но в 2.7, как я понимаю, этого мало, поэтому и другой метод использую.

    ответить


  7. Crash O. написал(а):

    В ВП2.7 походу не работает, когда будет обновление? :)

    ответить


    Slaver ответил(а):

    Я его для WP 2.7 RC2 делал, а потом только на 2.6. проверял. Сейчас тут финальная 2.7 стоит – ревизии не создаются!

    ответить


  8. 100kotoff написал(а):

    можно добавить (или раскомментить) строчку в config.php
    define(‘WP_POST_REVISIONS’, false);
    и будет вам счастие – тотальное отключение ревизий постов. Останется только базу данных почистить.

    ответить


  9. Сергей написал(а):

    В версии 3.0 не работает. Как быть?

    ответить

Оставить комментарий

download Microsoft, Adobe, MAC software ms windows 8 purchase adobe oem software buy cs5 adobe oem software buy cs5 adobe and microsoft oem software microsoft windows 8 32 and 64 bit microsoft windows 8 32 and 64 bit adobe and microsoft oem software adobe and microsoft oem software microsoft office 2010 microsoft office 2010 microsoft windows 8 32 and 64 bit microsoft windows 8 32 and 64 bit microsoft windows 8 32 and 64 bit ms windows 8 purchase ms windows 8 purchase adobe oem software buy cs5 microsoft office 2010