Управление на ревизиите на постовете в WordPress

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

По подразбиране за една страница и пост са зададени неограничено количество ревизии. Обърнете внимание, че на един пост от един редактор се прави само едно автоматично съхранение – последното авто съхранение се презаписва върху предишното. За всяка ревизия в WordPress се създава запис във таблица posts. В таблиците term_relationships и postmeta записите могат да бъдат няколко. За малки сайтове такова разточителство не се забелязва, но за големи това може да предизвика понижаване на производителността и ефективността. След време таблиците се запълват със излишни данни, които никога няма да бъдат използвани.

Ограничаваме ревизиите в WordPress

Количеството на ревизиите може да се зададат във файл wp-config.php. Преди да редактирате този файл, ви препоръчвам да направите негово копие, тъй като и най малката грешка може да доведе до неработещ сайт.

Управление на ревизиите на постовете в WordPress

Прибавете следния ред във файл wp-config.php, за да изключите създаването на ревизии:

define('WP_POST_REVISIONS', 0);

За да ограничите количеството на ревизиите, променете числото във този ред:

define('WP_POST_REVISIONS', 10);

За да върнете неограниченото количество на ревизиите, изтрийте този ред или променете значението на -1:

define('WP_POST_REVISIONS', -1);

По прост вариант е да използвате разширението WP-Optimize, което изчиства базата данни като премахва ревизиите, а също прави и други оптимизации на системата.

За тези които не се страхуват – може да се използват SQL команди за изчистване на копията на статиите и страниците. За начало ще трябва да намерите префикса на таблицата – той е зададен във файл wp-config.php. Например:

$table_prefix = 'wp_';

Префикс wp_ се задава по подразбиране при инсталацията на WordPress, но ако сте го променили, просто направете корекция във кода. За премахване на всички ревизии за всички страници и постове, отворете във вашия хостинг инструмента за администриране на MySQL във вашия phpMyAdmin и изпълнете следната SQL команда:

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 )
LEFT JOIN wp_term_taxonomy d ON ( b.term_taxonomy_id = d.term_taxonomy_id )
WHERE a.post_type = 'revision'
AND d.taxonomy != 'link_category';

Всичко ще протече по мед и масло и вие ще получите блестяща от чистота база данни, а сайта ви ще се ускори забележимо. Или WordPress няма да работи въобще, и вие ще изгубите постове които сте писали няколко години. Но нали преди това сте направили бекъп на базата данни…

С уважение, Николай Томов.

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *