Usuwanie szkiców postów w WordPressie

Jak pewnie zauważyliście ten blog jest postawiony na chyba najpopularniejszej platformie blogowej – na WordPressie.

W tym wpisie pokażę rozwiązanie jednego z „problemów”, które można napotkać korzystając z jednej z funkcjonalności tej platformy, mianowicie: automatycznego tworzenia szkiców.

Tworząc lub edytując post w WordPress-ie za każdym razem kiedy klikniemy na „Podejrzyj” lub „Zapisz szkic”, zostaje w bazie danych zapisywany nowy rekord z daną wersją szkicu. Oczywiście jest to bardzo przydatne, jeśli chcemy wrócić do wcześniejszej wersji posta lub jeśli omyłkowo coś usunęliśmy.

Niestety wiąże się to ze wzrostem zajętości bazy. Przy większej ilości wpisów i szkiców w nich różnica może być już całkiem spora. Oczywiście większa baza to mniejsza wydajność skryptu i niepotrzebna utrata miejsca na serwerze. Są też i inne konsekwencje, jednak te dwie wydają się najpoważniejsze.

Istnieją 3 możliwe rozwiązania danego problemu, możemy wybrać które najlepiej się sprawdzi w naszym przypadku.

Uwaga! Przed wprowadzenie jakichkolwiek zmian w serwisie proszę wykonać kopie zapasową bazy danych!

Usunięcie wszystkich istniejących szkiców

Szkice wpisów znajdują się w bazie danych razem z wpisami w tabeli wp_posts (wp_ to prefiks tabel instalacji WordPress-a). Od zwykłych wpisów odróżnia je status “revision” w polu post_status, w związku z  tym możemy usunąć z bazy danych wszystkie szkice (rewizje) tym prostym zapytaniem:

DELETE FROM wp_posts WHERE post_type =  "revision" ;

Niestety to zapytanie nie usunie wszystkich danych dotyczących tych wpisów (jak np kategorie i metatagi). Żeby je także usunąć musimy wykonać poniższe polecenie MySQL:

DELETE  ps, tr, pm  FROM  wp_posts ps  LEFT JOIN  wp_term_relationships tr  ON  ps.ID = tr.object_id  LEFT JOIN  wp_postmeta pm  ON  ps.ID = pm.post_id  WHERE  ps.post_type =  "revision";

Wyłączenie powstawiania nowych szkiców

Aby zablokować powstawanie nowych rewizji, należy w pliku wp_config.php (znajdującym się w głównym katalogu WordPressa) wstawić odpowiednią linijkę, która ustali stałą WP_POST_REVISIONS na wartość false lub 0:

define( 'WP_POST_REVISIONS' ,  false );

lub:

define( 'WP_POST_REVISIONS' , 0 ); 

Ustalenie limitu szkiców dla wpisów i stron.

W przypadku gdybyśmy chcieli żeby szkice (rewizje) powstawały, ale w ograniczonej ilości, możemy przypisać w pliku wp_config.php do stałej WP_POST_REVISIONS wartość określającą ilość rewizji (szkiców) – dla przykładu jeśli chcielibyśmy aby to były 4 szkice ustawiamy:

define('WP_POST_REVISIONS', 4);

Podsumowanie

Oczywiście istnieją wtyczki do WP, które sobie z tym radzą bez edycji ustawień lub kodu – w katalogu wtyczek wystarczy wpisać hasło „post revisions”.

Mam nadzieję, że ten wpis pomoże Wam poradzić sobie z rozrastającą się bazą danych wpisów i szkiców w WordPressie:)

Ta strona używa ciasteczek (cookies), dzięki którym nasz serwis może działać lepiej. Więcej informacji

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close