Wersjonowanie wpisów i stron

WordPress posiada wbudowany mechanizm wersjonowania wpisów i stron, dzięki któremu w każdej chwili możemy przywrócić jedną z zapisanych wcześniej wersji naszego tekstu lub dokonać porównania dwóch z nich. Mechanizm ten działa w tle i nie musimy w ogóle zaprzątać sobie nim głowy. Warto jednak wiedzieć jak z niego korzystać i jak można kontrolować jego działanie.

Lista wersji wpisuWszystkie zachowane wersje wpisu lub strony można znaleźć na liście Wersje wpisu, znajdującej się poniżej edytora. Jeśli listy tam nie ma, to należy ją włączyć otwierając Opcje ekranu (prawy górny róg strony edycji wpisu) i zaznaczając opcję Wersje wpisu.

Po kliknięciu na dowolną wersję wpisu zostaniemy przeniesieni na stronę, na której możemy podejrzeć każdą z zapisanych wersji oraz porównać zawartość dwóch wybranych. Pod treścią aktualnie podglądanego wpisu znajduje się lista dostępnych wersji. Obok każdej z nich znajduje się link Przywróć, za pomocą którego możemy przywrócić wybraną wersję wpisu. Warto zwrócić uwagę na to, że kod HTML oraz shortcody nie są tu parsowane – czyli wyglądają tak jak w edytorze tekstowym.

Lista wersji wpisu

Jeśli chcemy porównać zawartość dwóch wersji wpisu, musimy wybrać jeden z nich w kolumnie Stare, a drugi w kolumnie Nowe. Nazwy tych kolumn mogą wydawać się nieco niefortunne. Zasada jest jednak prosta: zawsze oglądamy zmiany dokonane w wersji „nowej” w stosunku do wersji „starej”.
Po wybraniu wersji do porównania klikamy przycisk Porównaj wersje, co spowoduje wyświetlenie obu wersji wpisu z zaznaczonymi różnicami.

Porównanie wersji wpisu

Fragmenty usunięte są oznaczone kolorem czerwonym, a dodane – kolorem zielonym. Dodatkowo ciemniejszym odcieniem danego koloru są oznaczone kawałki tekstu, którym różniły się dane fragmenty (jest to pokazane na obrazku powyżej – porównywane akapity różniły się tylko jednym wyrazem).

Niestety, z nieznanych mi powodów twórcy nie udostępnili możliwości samodzielnego usuwania zapisanych wersji.

Wersjonowanie wpisów od kuchni

Krótko o stronie technicznej wersji wpisów. Tak naprawdę każda zapisana wersja to nowy rekord w tabeli wp_posts, zawierającej wpisy, strony, multimedia i własne typy wpisów. Każdorazowe zapisanie edytowanego wpisu (zarówno jako Szkic, jak i jako wpis opublikowany) powoduje utworzenie nowej wersji. Zasada ta nie dotyczy wpisów zapisanych automatycznie, podczas edycji – w tym przypadku w bazie trzymana jest tylko ostatnia zapisana automatycznie wersja wpisu.

Jak nietrudno się domyślić, im więcej zachowanych wersji tym większy rozmiar tabeli wp_posts. W przypadku małych serwisów nie stanowi to żadnego problemu – kilka rekordów więcej nie zrobi nam różnicy. Jeśli jednak w naszym serwisie pojawia się kilka lub więcej wpisów dziennie, a na dodatek są one tworzone przez dłuższy czas, to warto poświęcić chwilę na konfigurację mechanizmu wersjonowania.

Konfiguracja mechanizmu wersjonowania

Najprostszym sposobem na konfigurację wersji wpisów jest edycja pliku wp-config.php. Tak naprawdę do dyspozycji mamy tylko jedną opcję – WP_POST_REVISIONS. Za jej pomocą możemy albo całkowicie wyłączyć mechanizm wersjonowania, albo ograniczyć ilość przechowywanych wersji.

Aby całkowicie wyłączyć mechanizm wersjonowania należy do pliku wp-config.php dodać następującą linię:

define('WP_POST_REVISIONS', false);

Aby ograniczyć liczbę przechowywanych wersji do na przykład pięciu należy do pliku wp-config.php dodać następujący kod:

define('WP_POST_REVISIONS', 5);

Zarządzanie wersjami wpisów za pomocą wtyczki Revisioner

WordPress ma tę zaletę, że jeśli chcemy coś w nim zrobić, to na pewno istnieje do tego jakaś gotowa wtyczka. Tak też jest w przypadku mechanizmu wersjonowania wpisów. Dostępnych rozszerzeń jest kilka, ale ja wybrałem wtyczkę Revisioner, która jest banalnie prosta w obsłudze, a jednocześnie ma wszystko, czego potrzeba.

Revisioner

Zamieszczony powyżej zrzut ekranu przedstawia wszystkie dostępne opcje wtyczki. Aby się do nich dostać należy z menu Narzędzia wybrać opcję Revisioner.
W polu Revisions możemy podać liczbę przechowywanych wersji każdego wpisu. Wpisanie 0 (zero) wyłączy całkowicie mechanizm wersjonowania wpisów.
W polu Auto Save możemy zdefiniować odstęp czasu (w sekundach) pomiędzy kolejnymi automatycznymi zapisami wpisów. Teoretycznie to ustawienie nie ma wiele wspólnego z wersjonowaniem wpisów.
Ostatnią dostępną funkcją wtyczki Revisioner jest możliwość usunięcia wszystkich zapisanych wersji wpisów i stron. Funkcja ta jest przydatna w momencie gdy całkowicie rezygnujemy z mechanizmu wersjonowania i chcemy usunąć niepotrzebne już wersje wpisów z bazy danych. Aby to robić należy przy opcji Clear All? wybrać YES, a następnie kliknąć przycisk Save settings (trochę to mało intuicyjne, to fakt). Pamiętajmy jednak, że ta operacja jest nieodwracalna.

Bezpośredni link