Jak korzystać nietrwałe cache WordPress
Istnieją różne sposoby na zwiększenie wydajności witryny: wyspecjalizowane wtyczki umożliwiają buforowanie stron dla statycznej zawartości HTML, inne umożliwiają buforowanie wszystkich zapytań SQL i obiektów danych, a na koniec niektóre pozwala zminimalizować pliki JavaScript i CSS, a nawet rozwiązania po stronie serwera.
Ale nawet jeśli używasz tych wtyczek, używanie wewnętrznych metod buforowania dla obiektów bazy danych i wyników będzie dobrą praktyką programistyczną, ponieważ Twoja wtyczka nie zależy od rozwiązania buforowania, które usuwa użytkownika końcowego. Twoja wtyczka powinna działać szybko i nie powinna polegać na innych wtyczkach do wykonywania brudnej roboty. A jeśli myślisz, że powinieneś napisać własny kod do zarządzania pamięcią podręczną, to się mylisz. WordPress zawiera wszystko, czego potrzebujesz, aby szybko wdrożyć różne buforowanie danych. Wystarczy zidentyfikować części kodu, które skorzystają na optymalizacji, i odpowiednio wybrać typ buforowania.
WordPress implementuje dwie różne metody buforowania:
Nietrwałe
Dane pozostają w pamięci podręcznej podczas ładowania strony. (WordPress używa go do buforowania większości wyników zapytań z bazy danych.)
Trwały
Zależy to od sposobu działania bazy danych, a buforowane dane mogą wygasnąć po pewnym czasie. (WordPress używa go do buforowania kanałów RSS, aktualizacji itp.).
W tym samouczku uwzględnimy tylko nietrwałą pamięć podręczną.
Jak skonfigurować „nietrwałą” nietrwałą pamięć podręczną
Gdy korzystasz z funkcji takich jak „ Get_posts () "Lub" Get_post_meta () WordPress najpierw sprawdza, czy potrzebne dane są przechowywane w pamięci podręcznej. Jeśli tak, to otrzymasz dane z pamięci podręcznej; w przeciwnym razie w celu uzyskania tych danych zostanie wykonane zapytanie do bazy danych. Po odzyskaniu danych zostaną one również zapisane w pamięci podręcznej. Nietrwała pamięć podręczna jest zalecana dla wyników bazy danych, które można ponownie wykorzystać podczas tworzenia strony.
Wewnętrzny nietrwały kod pamięci podręcznej WordPress znajduje się w pliku „ cache.php „W katalogu„ wp-includes ”zarządzanym przez„ WP_Object_Cache ”. Musimy użyć dwóch podstawowych funkcji: „ wp_cache_set () "A" wp_cache_get () Jednocześnie z funkcjami dodatkowymi ” wp_cache_add () "," wp_cache_replace () "," wp_cache_flush () "A" wp_cache_delete () ”. Pamięć podręczna jest zorganizowana w grupy, z których każda pozycja potrzebuje swojego unikalnego klucza. Aby uniknąć pomieszania domyślnych danych WordPress, najlepszym rozwiązaniem jest używanie unikalnych nazw.
Przykłady
W tym przykładzie utworzymy funkcję o nazwie „d4p_get_all_post_meta ()”, która pobiera wszystkie metadane powiązane z artykułem. Ta pierwsza wersja nie zawiera buforowania.
function d4p_get_all_post_meta($post_id) {
global $wpdb;
$data = array();
$raw = $wpdb->get_results( "SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id = $post_id", ARRAY_A );
foreach ( $raw as $row ) {
$data[$row['meta_key']][] = $row['meta_value'];
}
return $data;
}
Za każdym razem, gdy wywołasz tę funkcję dla tego samego artykułu, zostanie wykonane zapytanie SQL. Oto zmodyfikowana funkcja korzystająca z nietrwałej pamięci podręcznej WordPress:
function d4p_get_all_post_meta($post_id) {
global $wpdb;
if ( ! $data = wp_cache_get( $post_id, 'd4p_post_meta' ) ) {
$data = array();
$raw = $wpdb->get_results( "SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id = $post_id", ARRAY_A );
foreach ( $raw as $row ) {
$data[$row['meta_key']][] = $row['meta_value'];
}
wp_cache_add( $post_id, $data, 'd4p_post_meta' );
}
return $data;
}
Tutaj używamy grupy pamięci podręcznej o nazwie „ d4p_post_meta ”I„ post_id ”, który jest kluczem. Dzięki tej funkcji sprawdzimy, czy potrzebujemy wszystkich danych w pamięci. W przeciwnym razie uruchomimy normalny kod, aby pobrać dane, a następnie dodamy je do pamięci podręcznej w wierszu 13. Więc jeśli wywołasz tę funkcję więcej niż raz, tylko pierwszy wykona zapytanie SQL. Wszystkie inne połączenia będą pobierać dane z pamięci podręcznej. Tutaj używamy funkcji „ wp_cache_add ”, Więc jeśli kombinacja„ klucz-grupa ”już istnieje, nie zostanie zastąpiona. Porównaj to z „ wp_cache_set Który zawsze zastąpi istniejącą wartość bez sprawdzania.
Jak widać, właśnie dokonaliśmy niewielkiej zmiany w istniejącym kodzie, ale potencjalnie zaoszczędziliśmy wiele wywołań bazy danych, co potencjalnie przyspieszyło ładowanie.
Ważne uwagi
Nietrwała pamięć podręczna jest dostępna tylko podczas ładowania bieżącej strony; po załadowaniu następnej strony będzie ona ponownie pusta.
Rozmiar pamięci jest ograniczony przez całkowitą pamięć dostępną w PHP przydzieloną przez serwer. Nie przechowuj dużego zestawu danych, ponieważ może to spowodować wyświetlenie komunikatu „Brak pamięci”.
Korzystanie z tego typu pamięci podręcznej ma sens tylko w przypadku operacji powtarzanych więcej niż jeden raz podczas tworzenia strony.
Z łatwością stwórz swój sklep internetowy
Uzyskaj woocommerce, najlepsze wtyczki e-commerce do sprzedaży produktów swoich fizycznych i cyfrowych na WordPressie. [Zalecane]
Działa z WordPress od wersji 2.0.
To tyle w tym samouczku. Mam nadzieję, że pozwoli to lepiej buforować bloga.
Ten artykuł zawiera komentarze 0