Изтриване на ревизиите от базата данни на WordPress

18 ян. 2015 | Оптимизация
Removing WordPress revision

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

Влезте в 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)
WHERE a.post_type = 'revision'

Не забравяйте непременно да си направите предварително backup на базата данни! Също така, ако по време на WordPress инсталацията сте задали друг префикс за таблиците в базата данни, например user, заместете го с вашия в горния код – user_posts вместо wp_posts и съответно за wp_term_relationships и wp_postmeta.

Тази заявка е подходяща, ако вашата WordPress тема използва функцията Избор на картинка за публикацията (Set Featured Image). Ако във вашата тема вкарвате изображенията директно чрез бутона Добавяне на файл (Add Media), изтриването на ревизиите от колоната post_type няма да премахне всички излишни редове от таблицата wp_posts. В случая по-удачно е последният ред от горния код да бъде променен по следния начин:

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_status = 'inherit'