Тег «плагины»

Отключение ревизий (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. Ключевые слова: .