Блог на Васил Тошков

Спиране "версии на публикацията" в WordPress

Трудно ми беше да измисля заглавие на тази публикация. Сигурно сте забелязали, че от версия 2.6 WordPress пази по няколко версии на всяка публикация, като броят им зависи от това колко време сме я писали и колко пъти сме я променяли. Лично за мен това е напълно излишна опция, която прави базата данни в пъти по-голяма и цялата система в пъти по-бавна.

Отдавна се каня да намеря решение на този проблем, трябваше да ми остане малко свободно време и днес това се случи. Стимулът беше, че от Гугъл официално признаха, че скоростта на сайт ще е от значение за позиционирането му. Спирането на тази опция, наречена "revisions", ускорява значително скоростта на WordPress.

В момента пиша този пост много по-лесно от преди, защото той много по-бързо се запазва автоматично. Спирането на тази ненужна и бавеща екстра се състои от три етапа. Първо задаваме директива на WordPress, да спре да пази нови версии на публикациите. След това изчистваме базата данни от всички непубликувани версии и накрая оптимизираме таблиците.

1. Спиране запазването на нови версии

За целта трябва да се добави следната директива към системата:

define('WP_POST_REVISIONS', false);

По принцип би-трябвало да става с добавяне на това във функциите на темата или направо във файла wp-config.php, но при мен така не стана. Затова го направих като разширение, което може да си изтеглите от тук и да инсталирате ръчно, чрез качване от компютър. Ако всичко е наред, ще спрете да виждате версиите на публикациите.

2. Изчистване на базата данни

За целта изпълнете следната заявка в базата данни на блога:

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

Излишно е да казвам преди да пуснете това да си направите архив на базата данни! Заявката е бавна, в един от блоговете ми три към 23 секунди и отнесе няколко десетки хиляди излишни записа. Всичко зависи от големината на блога, важното е да имате търпение и да не прекъсвате заявката.

Редакция: Заявката има един мааалък страничен ефект - някои връзки от blogroll спират да се показват. За целта е необходимо да се редактират и save-нат наново. Не поемам никаква отговорност, ако заявката вреди и на нещо друго.

3. Оптимизиране на таблиците

Тук е лесно, просто изпълнете и тази заявка в базата данни:

OPTIMIZE TABLE wp_posts, wp_term_relationships, wp_postmeta;

Всичко това го направих на всичките си блогове, отне ми доста време, но смятам, че си заслужава. Все-още вървят - шегувам се :) Ако не ви се рискува, то изпълнете само точка едно. Ако сте се захванали с точка две, то точка три е безобидна и може само да ви е от полза. Приятно триене за един по-бърз WordPress :)

П.С.: Поиграх си да направя удобни бутони за споделяне в популярните социални мрежи в края на всяка публикация. Надявам се, че ще са полезни.