WordPress: Wyłączenie systemu rewizji postów

Spis treści

System rewizji postów to nic innego jak wersjowanie kolejnych zmian tworzonych artykułów za pomocą WordPress'owego edytora. Domyślnie ten ficzer jest włączony i powoduje nadmierne rozrastanie się bazy danych, a to z tego powodu, że każda drobna poprawka, to kolejna wersja artykułu, która wędruje do bazy. Nie ma przy tym żadnego ograniczenia co do ilości przechowywanych rewizji. Tego typu mechanizm jest w wielu przypadkach bardzo użyteczny, no bo przecie mamy podgląd wszelkich zmian wprowadzanych do postów i dodatkowo możemy te zmiany śledzić na przestrzeni tygodni, miesięcy czy nawet i lat.

System rewizji w praktyce

Jak mówi klasyk: "Niestety nie da się wytłumaczyć czym jest system rewizji w WordPressie, trzeba to po prostu zobaczyć na własne oczy", także poniżej fotka, która powinna rozjaśnić wszystkie wątpliwości:

podglad-rewizji

Zatem wiemy już czym jest system rewizji i jak widzimy wyżej, niczym się ten patent nie różni od zwykłego diffa znanego choćby z systemów kontroli wersji (CVS), np. GIT. Jeśli nie chcemy wersjować swoich postów lub robimy to poza WordPressem, to ten dodatek jest nam zwyczajnie zbędny, a kolejne kopie artykułów zaśmiecają nam jedynie bazę danych, która to z kolei może przybrać dość spore rozmiary, z czego 90% mogą zajmować same rewizje. Na szczęście wyjść z tej sytuacji jest kilka.

Ograniczenie liczby rewizji

Najprostszy sposób jaki przychodzi mi do głowy by rozwiązać problem zbyt dużej liczby rewizji, to pisanie artykułu poza edytorem WordPressa i wklejanie tam jedynie gotowych tekstów, które zawsze będą mieć tylko jedną rewizję -- tę aktualną. W praktyce bardzo ciężkie do zrealizowania, chyba, że kompletnie nie aktualizujemy napisanych postów i nasz blog przypomina bardziej śmietnik.

Innym sposobem na odchudzenie bazy danych jest wskazanie WordPessowi by ten przechowywał tylko pewną ograniczoną ilość rewizji. Możemy się zabrać do tego na dwa sposoby: filter wp_revisions_to_keep lub odpowiedni parametr w pliku wp-config.php . Jeśli ktoś jest zainteresowany implementacją filtra, pod tym linkiem są dokładne instrukcje jak to zrobić. My tutaj wybierzemy prostszy sposób, który pod względem efektu niczym się zbytnio nie różni od metody z filtrem.

Edytujemy zatem plik wp-config.php i wklejamy tam poniższy kod:

define( 'WP_POST_REVISIONS', 4 );

Cyfra 4 oznacza ilość rewizji, które zostaną zapisane w bazie. Do tego trzeba również doliczyć jedną pozycję na automatyczny zapis, który standardowo dokonuje się co 60s. Wszystkie starsze rewizje będą automatycznie usuwane z bazy danych.

Liczbę przechowywanych aktualnie rewizji w bazie danych możemy śledzić w każdym poście po przejściu do jego edycji:

liczba-rewizji

Wyłączenie systemu rewizji

Wyłączenie systemu rewizji nie wpływa na automatyczny zapis w określonym interwale czasowym. W ten sposób zawsze będziemy mieć jedną dodatkową kopię artykułu w bazie. Ponadto, Posty posiadające swoje rewizje, zachowają je po wyłączeniu systemu rewizji i by pozbyć się ich z bazy danych, trzeba to będzie zrobić ręcznie lub też przy pomocy jakiegoś pluginu WordPress'a.

Jeśli nie zadowala nas ograniczenie co do przechowywanej liczby rewizji w bazie danych, zawsze możemy ten mechanizm wyłączyć całkowicie. Robimy to dokładnie w ten sam sposób i nawet przy pomocy tej samej opcji. Jedyna różnica to wstawienie 0 lub false w miejsce 4 , przykładowo:

define( 'WP_POST_REVISIONS', false );

Moim zdaniem sam system rewizji to bardzo przyzwoite narzędzie, zwłaszcza gdy w grę wchodzi przywłaszczanie sobie czyjej pracy i podpisywanie się pod nią. Wtedy bez problemu możemy wyciągnąć log rewizji i udowodnić, że to my napisaliśmy jakiś konkretny artykuł, bo mamy przecie wszystkie jego zmiany i do tego otagowane datami. Dlatego też nie zalecam jego wyłączania.

Mikhail Morfikov avatar
Mikhail Morfikov
Po ponad 10 latach spędzonych z różnej maści linux'ami (Debian/Ubuntu, OpenWRT, Android) mogę śmiało powiedzieć, że nie ma rzeczy niemożliwych i problemów, których nie da się rozwiązać. Jedną umiejętność, którą ludzki umysł musi posiąść, by wybrnąć nawet z tej najbardziej nieprzyjemniej sytuacji, to zdolność logicznego rozumowania.