WordPress: Jak skasować starsze niż miesiąc wersje wpisów?
Zastanawialiście się może kiedyś jak przyrasta baza danych waszego serwisu opartego o WordPress? Jeżeli nie publikujecie kilku wpisów dziennie, to może nie jest to jakaś niesamowita wielkość ale coś tam się dzieje. Każde zapisanie przygotowywanego wpisu tworzy w bazie danych jego wersję i o ile macie ustawioną stałą WP_POST_REVISIONS na wartość większą od zera, to system nie stworzy więcej niż zdefiniowana wartość i tu mógłbym skończyć moje rozważania. Ale…
zobacz teżWordPress: usuń zbędne kopie wpisów
No właśnie jest jedno ale, najstarszy wpis tutaj pochodzi z 2003 roku i nawet jezeli mój serwis trzyma tylko 3 ostatnie wersje wpisów, to posiadając kilkaset wpisów oznacza to kilkaset do kilkutysięcy rekordów w bazie w dwóch tabelach. W tabelach posts oraz postmeta (nie zapomnijcie o prefiksie).
Poniższy kod, umieszczony w katalogu wp-content/mu-plugins pozwala na czyszczenie bazy ze starszych niż miesiąc wersji wpisów.
add_action( 'admin_init', 'iworks_delete_older_revisions' ); function iworks_delete_older_revisions() { global $wpdb; $query = 'delete from '.$wpdb->posts.' where post_type = \'revision\' and post_date < now() - interval 1 month'; $wpdb->query( $query ); $query = 'delete a from '.$wpdb->postmeta.' a left join '.$wpdb->posts.' b on b.ID = a.post_id where b.ID is null'; $wpdb->query( $query ); }
Uznałem, że miesiąc to dobry czas, po którym można usunąć zalegające wpisy. Oczywiście każdy kto zechce może ten okres zwiększyć. Wystarczy zmienić „interval 1 month” na „interval 3 month”, żeby usuwać wersje starsze niż 3 miesiące.
pobierz plik: iworks_delete_revision_older_than_month.php
Szukaj
Tagi
ostatnio popularne wpisy
- Jak używać w odnośnikach użyć mailto
- WordPress na wiele języków
- Ostatnia wersja WPML na licencji GPL
- WPML stał się komercyjną wtyczką
- WordPress: Jak ustawić strony z wpisami?
- Jak zapytać facebook’a o liczbę „lubię to” dla konkretnego adresu?
- WordPress 3.3.2
- Wyświetlanie jednej kategorii wpisów na stronie głównej
- Tworzenie layoutu – krok po kroku
- WordPress: usuń zbędne kopie wpisów
ostatnie komentarze
- Tropienie błędów – 7 technik, które ułatwią życie programiście WordPressa | Webfaces blog o WordPress: klasa css dla tagu body
- Kasia o Jak zapytać facebook’a o liczbę „lubię to” dla konkretnego adresu?
- Marcin o WordPress: klasa css dla tagu body
- benek o WordPress: klasa css dla tagu body
- Mariusz o Jak zapytać facebook’a o liczbę „lubię to” dla konkretnego adresu?
- Marcin o WordPress 3.3.2
- Jakub Milczarek o WordPress 3.3.2
- jboss o O polskiej wersji WordPressa 3.3
- Marcin o Ostatnia wersja WPML na licencji GPL
- Marcin o Ostatnia wersja WPML na licencji GPL
Liczba komentarzy: 4
17 stycznia 2012 o godzinie 10:17 Daggerka skomentował:
Oooo tego mi brakowało! Doskonały kompromis!
19 stycznia 2012 o godzinie 9:37 Amon skomentował:
Świetna porada, szczególnie dla takiego początkującego wordpressowicza jak ja. Z pewnością skorzystam z tej wskazówki. Chociaż chyba zwiększył bym ten okres do usuwania – to jeszcze kwestia do przemyślenia. Dzięki i pozdrawiam.
23 stycznia 2012 o godzinie 0:22 Ryszard skomentował:
Do usuwania starszych wersji wpisów można również użyć plugin do wordpresa Revision Control ze strony http://wordpress.org/extend/plugins/revision-control/ Poza usuwaniem wybranych wersji wpisów i stron ma możliwość porównania zmian pomiędzy wybranymi wpisami. Poza tym można ustawić ilość przechowywanych wersji wpisów. Za pomocą tej wtyczki można również kontrolować ilość wersji dla stron.
23 stycznia 2012 o godzinie 15:01 Marcin skomentował:
@Ryszar: Porównywanie wersji wpisu ma sam WordPress.
Dodaj komentarz
Należy wpełnić pola oznaczone znakiem gwiazdki "*". Proszę zapoznać się z zasadami komentowania.