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
ostatnie komentarze
- Radek o WordPress: blokowanie w robots.txt kilku rzeczy
- Marcin o Wtyczka WordPress ” upPrev
- Eva (My Client is Rich) o Wtyczka WordPress ” upPrev
- Marcin o WordPress: losowa kolejność postów
- Michał o WordPress: losowa kolejność postów
- Marcin o WordPress: losowa kolejność postów
- Michał o WordPress: losowa kolejność postów
- Marcin o WordPress: blokowanie w robots.txt kilku rzeczy
- SpeX o WordPress: blokowanie w robots.txt kilku rzeczy
- Thanks God it’s Friday | Studio Multimedi@lne ljasinski.pl o WordPress: blokowanie w robots.txt kilku rzeczy
ostatnio popularne wpisy
- Jak używać w odnośnikach użyć mailto
- WordPress na wiele języków
- Tworzenie layoutu ” krok po kroku
- Ostatnia wersja WPML na licencji GPL
- Wyświetlanie jednej kategorii wpisów na stronie głównej
- WordPress: Jak ustawić strony z wpisami?
- WordPress: blokowanie w robots.txt kilku rzeczy
- Interaktywna mapa Polski ” wtyczka do WordPressa
- WPML stał się komercyjną wtyczką
- WordPress: jak zmodyfikować atrybuty ikony wpisu?
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.