Zarządzanie rewizjami i automatycznym zapisem w WordPress
Autosave i rewizje to różne rzeczy:
- autosave to tymczasowa wersja co kilka sekund (jedna kopia na użytkownika).
- rewizje to trwałe kopie zapisane ręcznie lub automatycznie, rewizje są przechowywane w tabeli wp_posts z typem revision.
Zbyt wiele rewizji (np. setki na jeden wpis) może obciążać bazę danych – warto ustawić limit (np. 3 lub 5)
WP_POST_REVISIONS
Stała WP_POST_REVISIONS steruje liczbą rewizji, które WordPress przechowuje w bazie danych dla każdego posta/strony/CPT.
Możliwe wartości i ich działanie:
- define(’WP_POST_REVISIONS’, true); (domyślnie)
- włączone bez limitu: WordPress tworzy nieskończoną liczbę rewizji,
- każda edycja dodaje nową wersję do bazy danych,
- define(’WP_POST_REVISIONS’, 5); (lub inna liczba)
- WordPress przechowuje maksymalnie 5 ostatnich rewizji dla danego wpisu,
- starsze są automatycznie usuwane,
- pomaga to zmniejszyć rozmiar bazy danych,
- jest bezpiecznym kompromisem między użytecznością a optymalizacją,
- define(’WP_POST_REVISIONS’, false);
- rewizje są całkowicie wyłączone,
- uwaga: nadal działa autosave (tymczasowy zapis roboczy), ale nie zapisują się żadne trwałe rewizje,
AUTOSAVE_INTERVAL
Stała AUTOSAVE_INTERVAL w WordPressie określa, co ile sekund WordPress wykonuje automatyczny zapis szkicu (wersji roboczej) podczas edycji wpisu lub strony w panelu administracyjnym.
Przydatne informacje:
- domyślnie co minutę WordPress wysyła dane formularza i zapisuje tymczasową wersję wpisu w bazie danych,
- przechowywane są w bazie danych wp_posts z typem revision i statusem auto-draft,
- możesz zarządzać czasem po jakim dokonuje się autosave, jeśli chcesz zmniejszyć liczbę zapytań AJAX do serwera lub rzadziej zapisywać zmiany tymczasowe
- uwaga: jeśli ustawisz zbyt długi interwał (np. 900 sekund = 15 minut), to w razie awarii przeglądarki możesz stracić więcej pracy
Ustawienie
1. Standardowo w pliku wp-config.php
który znajduje się w głównym katalogu instalacji WordPressa, tam gdzie katalog wp-admin, wp-content.
Wstaw ten kod przed linią /* That’s all, stop editing! Happy publishing. */
define('AUTOSAVE_INTERVAL', 300); // seconds, every 5 minutes
define('WP_POST_REVISIONS', 5);
2. środowisko oparte na Dockerze
2.1 Własny wp-config.custom.php + require
W katalogu głównym WordPressa (tym samym, co wp-config.php) utwórz plik wp-config.custom.php, w nim zamieść kod php:
define('AUTOSAVE_INTERVAL', 300); // seconds, every 5 minutes
define('WP_POST_REVISIONS', 5);
W pliku wp-config.php dodaj require_once, przed linią /* That’s all, stop editing! Happy publishing. */ wstaw:
if (file_exists(__DIR__ . '/wp-config.custom.php')) {
require_once __DIR__ . '/wp-config.custom.php';
}
2.2 Zmienna środowiskowa + wp-config.php
W pliku docker-compose.yml wstawiasz kod:
environment: - AUTOSAVE_INTERVAL=300 - WP_POST_REVISIONS=5
i w pliku wp-config.php, przed linią /* That’s all, stop editing! Happy publishing. */ wstawiasz:
define('AUTOSAVE_INTERVAL', getenv('AUTOSAVE_INTERVAL') ?: 60);
define('WP_POST_REVISIONS', getenv('WP_POST_REVISIONS') ?: true);
Dzięki temu możesz konfigurować zachowanie WordPressa bez modyfikowania plików w kontenerze.
Hope this helps and happy coding :)
Zobacz jeszcze
query vars
query variables functions.php: add_filter('query_vars', 'wsQueryVars'); function wsQueryVars($vars) { $vars = 'webDesign'; //register new query vars $vars = 'webCoding';...