Istnieją różne sposoby zwiększenia wydajności witryny: wyspecjalizowane wtyczki umożliwiają buforowanie stron dla statycznej zawartości HTML, inne umożliwiają buforowanie wszystkich zapytań SQL i données, a wreszcie niektóre pozwalają na minifikację plików JavaScript i CSS, a nawet rozwiązania po stronie serwera.

mise-en-hide-na wordpress

Ale nawet jeśli używasz tych wtyczek, używając metod w pamięci podręcznej wewnętrzne dla obiektów bazy danych i wyników données będzie dobrą praktyką programistyczną, ponieważ twoja wtyczka nie zależy od rozwiązania buforującego, jakie ma użytkownik końcowy. Twoja wtyczka powinna być szybka i nie powinna polegać na innych wtyczkach do wykonywania brudnej roboty. A jeśli myślisz, że powinieneś napisać własny kod zarządzania pamięcią podręczną, to się mylisz. WordPress zawiera wszystko, czego potrzebujesz, aby szybko wdrożyć różne w pamięci podręcznej danych. Musisz tylko 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.

Działa z WordPress od wersji 2.0.

To tyle w tym samouczku. Mam nadzieję, że pozwoli to lepiej buforować bloga.

%d blogerzy lubią tę stronę: