Отключение ревизий (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.
Если бы я выложил все плагины, которые писал, было б уже порядком двух десятков :)
7.12.2008 // 22:38
Disable Revisions на блоге Антипланета | The Chronicles of Crash написал(а):
[...] Slaver, спасибо! Теги: WordPress, Плагины. RSS этого поста × Адрес трэкбэка [...]
7.12.2008 // 22:39
На Ultra-Music обновления — Ultra-Music написал(а):
[...] вид шрифтов, обновил движок, поставил новый плагин, но это всё вам не [...]
8.12.2008 // 09:15
Az написал(а):
так выложи ;)
ответить
December 8th, 2008 // 09:27
Slaver ответил(а):
Так выложил же :)
ответить
December 8th, 2008 // 10:21
Az ответил(а):
я про остальные.
ответить
December 8th, 2008 // 10:24
Slaver ответил(а):
Аааа… Ну там не так много прикладного характера плагинов — большинство писалось под конкретные проекты и задачи. Ну что-нибудь еще выложу :)
ответить
8.12.2008 // 10:26
ioni написал(а):
А у меня вопрос – плагин одноразово это делает – или при загрузке каждого поста или по крону?
ответить
December 8th, 2008 // 10:32
Slaver ответил(а):
Плагин один раз очищает базу от ревизий, а потом просто отключает возможность создавать новые ревизии вообще, пока активировн.
ответить
December 8th, 2008 // 11:06
ioni ответил(а):
Отлично!
ответить
December 8th, 2008 // 11:12
Slaver ответил(а):
Бэкап все равно нужно сделать :)
ответить
8.12.2008 // 12:44
va написал(а):
спасибо
ответить
December 8th, 2008 // 12:46
Slaver ответил(а):
На здоровье! :)
ответить
14.12.2008 // 11:06
aliaksei написал(а):
Нашел как-то в конфиге :)
// define(‘WP_POST_REVISIONS’, ’5′); // кіраванне колькасцью рэвізій. 0-адключа іх увогуле, кожная іншая лічба пазначае максімальную колькасць рэвізій кожнага запісу.
ответить
December 14th, 2008 // 14:40
Slaver ответил(а):
Я в плагин включил отключение (хи-хи) WP_POST_REVISIONS, но в 2.7, как я понимаю, этого мало, поэтому и другой метод использую.
ответить
18.12.2008 // 13:46
Crash O. написал(а):
В ВП2.7 походу не работает, когда будет обновление? :)
ответить
December 18th, 2008 // 15:50
Slaver ответил(а):
Я его для WP 2.7 RC2 делал, а потом только на 2.6. проверял. Сейчас тут финальная 2.7 стоит – ревизии не создаются!
ответить
28.03.2009 // 22:20
100kotoff написал(а):
можно добавить (или раскомментить) строчку в config.php
define(‘WP_POST_REVISIONS’, false);
и будет вам счастие – тотальное отключение ревизий постов. Останется только базу данных почистить.
ответить
3.12.2010 // 20:00
Сергей написал(а):
В версии 3.0 не работает. Как быть?
ответить