Postoje različiti načini da svoje web mjesto učinite učinkovitijim: specijalizirani dodaci vam omogućuju predmemoriju stranica za statički HTML sadržaj, drugi vam omogućuju predmemoriju svih SQL upita i données, a naposljetku neki vam omogućuju smanjivanje JavaScript i CSS datoteka, pa čak i rješenja na strani poslužitelja.

mise-en-skrivanje na wordpress

Ali čak i ako koristite ove dodatke, koristeći metode caching interni za objekte baze podataka i rezultate données bit će dobra razvojna praksa, jer vaš dodatak ne ovisi o bilo kojem rješenju za predmemoriju koje ima krajnji korisnik. Vaš bi dodatak trebao sam biti brz i ne bi se trebao oslanjati na druge dodatke da obave prljavi posao. A ako mislite da biste trebali napisati vlastiti kod za upravljanje predmemorijom, varate se. WordPress dolazi sa svime što vam je potrebno za brzu implementaciju raznih caching de données. Samo trebate identificirati dijelove koda koji će imati koristi od optimizacije i odabrati vrstu caching u skladu s tim.

WordPress implementira dvije različite metode predmemoriranja:

Nije postojan

Podaci ostaju u predmemoriji dok se stranica učitava. (WordPress koristi za predmemoriranje većine rezultata upita iz baze podataka.)

Uporan

To ovisi o načinu na koji baza podataka funkcionira, a keširani podaci mogu nakon isteka određenog vremena samostalno isteći. (WordPress koristi za predmemoriranje RSS feedova, ažuriranja itd.).

U ovom ćemo udžbeniku uzeti u obzir samo nepostojanu predmemoriju.

Kako postaviti nepostojanu predmemoriju "Non-Persistent"

Kada koristite funkcije poput " get_posts () "Ili" get_post_meta () WordPress prvo provjerava jesu li podaci koji su vam potrebni predmemorirani. Ako je to slučaj, dobit ćete podatke iz predmemorije; u protivnom će se izvršiti upit baze podataka za dobivanje tih podataka. Nakon što se podaci oporave, oni će se također spremiti u predmemoriju. Nepostojana predmemorija preporučuje se za rezultate baze podataka koji bi se mogli ponovno koristiti prilikom stvaranja stranice.

Unutarnji nepostojani kod predmemorije WordPressa nalazi se u datoteci " cache.php "U direktoriju" wp-includes ", a njime upravlja" WP_Object_Cache ". Moramo koristiti dvije osnovne funkcije: " wp_cache_set () "A" wp_cache_get () Istovremeno s dodatnim funkcijama " wp_cache_add () "" wp_cache_replace () "" wp_cache_flush () "A" wp_cache_delete () ”. Spremljeno spremanje podataka organizirano je u skupinama, a za svaki unos potreban je njihov jedinstveni ključ. Da biste izbjegli miješanje zadanih WordPress podataka, najbolja je praksa korištenje jedinstvenih imena.

Exemple

Za ovaj primjer stvorit ćemo funkciju nazvanu "d4p_get_all_post_meta ()", koja dohvaća sve meta podatke povezane s člankom. Ova prva verzija ne uključuje predmemoriranje.

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;
}

Svaki put kada nazovete ovu funkciju za isti članak, izvršit će se SQL upit. Evo modificirane funkcije koja koristi nepostojanu WordPress cache:

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;
}

Ovdje koristimo grupu predmemorije pod nazivom " d4p_post_meta ", I" post_id "koji je ključ. Pomoću ove funkcije provjerit ćemo jesu li nam potrebni svi podaci u memoriji. Inače ćemo pokrenuti uobičajeni kôd da bismo dobili neke podatke, a zatim ga dodati u predmemoriju u retku 13. Dakle, ako ovu funkciju pozovete više puta, samo će prvi izvršiti SQL upit. Svi ostali pozivi dohvatit će podatke iz predmemorije. Ovdje koristimo funkciju " wp_cache_add ", Dakle, ako kombinacija" grupa-ključ "već postoji, neće biti zamijenjena. Usporedite to sa " wp_cache_set Koji će uvijek zamijeniti postojeću vrijednost bez provjere.

Kao što vidite, upravo smo napravili malu promjenu u postojećem kodu, ali potencijalno smo spremili puno poziva baze podataka što je potencijalno ubrzalo učitavanje.

Važne napomene

Ne-trajni predmemorij dostupan je samo dok se učitava trenutna stranica; kada se sljedeća stranica učita, bit će ponovno prazna.

Veličina pohrane ograničena je ukupnom memorijom dostupnom na PHP-u koju je dodijelio poslužitelj. Nemojte spremati velik skup podataka, jer biste u konačnici mogli dobiti poruku "Nema dovoljno memorije".

Korištenje ove vrste predmemorije ima smisla samo za operacije ponovljene više puta tijekom stvaranja stranice.

Ona radi s WordPress od 2.0 verzije.

To je sve za ovaj tutorial. Nadam se da će vam pomoći u boljem keširanju blog.