Gå till innehållet

Hur man använder icke-ihållande cache Wordpress

Divi: det enklaste WordPress-temat att använda

Divi: Det bästa WordPress-temat hela tiden!

mer 901.000-nedladdningar, Divi är det mest populära WordPress-temat i världen. Den är komplett, lätt att använda och levereras med mer än 62 gratis mallar. [Rekommenderas]

Det finns olika sätt att effektivisera din webbplats: specialiserade plugins tillåter dig att cache-sidor för statisk HTML-innehåll, andra låter dig cache alla SQL-frågor och dataobjekt och slutligen några låter dig minimera JavaScript- och CSS-filer och till och med lösningar på serversidan.

mise-en-hide-on-wordpress

Men även om du använder dessa plugins är det bra utvecklingsmetoder att använda interna cachemetoder för databasobjekt och resultat, eftersom ditt plugin inte beror på cachningslösningen som avyttrar slutanvändaren. Ditt plugin ska vara snabbt på egen hand och bör inte förlita sig på andra plugins för att göra det smutsiga arbetet. Och om du tycker att du ska skriva din egen kod för cachehantering har du fel. WordPress kommer med allt du behöver för att snabbt implementera olika datacaching. Du behöver bara identifiera de delar av din kod som kommer att dra nytta av optimering och välja en cachetyp i enlighet därmed.

WordPress implementerar två olika metoder för caching:

inte ihållande

Uppgifterna förblir i cachen medan sidan laddas. (WordPress använder det för att cache de flesta frågeställningarna från databasen.)

Beständig

Skapa enkelt din webbplats med Elementor

Med Elementor kan du enkelt skapa en webbdesign med ett professionellt utseende. Sluta betala dyra för vad du kan göra själv. [Fritt]

Detta beror på hur databasen fungerar, och cachedata kan själv upphöra att gälla efter en viss tid. (WordPress använder det för att cache RSS-feeds, uppdateringar, etc.).

I denna handledning kommer vi bara att ta hänsyn till den icke-beständiga cachen.

Så här ställer du in "icke-beständig" icke-beständig cache

När du använder funktioner som " get_posts () "Eller" get_post_meta () WordPress kontrollerar först om de data du behöver är cachade. I så fall får du data från cachen; I annat fall kommer en databasfråga att köras för att erhålla dessa data. När data har återställts kommer den också att cachas. En icke-beständig cache rekommenderas för databasresultat som kan återanvändas när du skapar en sida.

Den interna icke-beständiga cache-koden för WordPress finns i filen " cache.php "I katalogen" wp-includes ", och den hanteras av" WP_Object_Cache ". Vi måste använda två grundläggande funktioner: " wp_cache_set () "Och" wp_cache_get () Samtidigt som tilläggsfunktionerna " wp_cache_add () "" wp_cache_replace () "" wp_cache_flush () "Och" wp_cache_delete () ". Den cachelagrade lagringen är organiserad i grupper, varvid varje post behöver sin unika nyckel. För att undvika att blanda WordPress-standarddata är det bästa sättet att använda unika namn.

Exemple

För det här exemplet ska vi skapa en funktion med namnet "d4p_get_all_post_meta ()", som hämtar alla metadata som är associerade med en artikel. Denna första version inkluderar inte cachning.

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

Varje gång du kallar denna funktion för samma artikel, kommer en SQL-fråga att köras. Här är den modifierade funktionen som använder den icke-persistenta WordPress-cachen:

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

Här använder vi en cache-grupp med namnet " d4p_post_meta ", Och" post_id "som är nyckeln. Med denna funktion kommer vi att kontrollera om vi behöver alla data i minnet. Annars kommer vi att köra den normala koden för att få lite data och sedan lägga till den i cachen i rad 13. Så om du ringer till den här funktionen mer än en gång kommer bara den första att utföra en SQL-fråga. Alla andra samtal hämtar data från cachen. Här använder vi funktionen " wp_cache_add ", Så om kombinationen" nyckel-grupp "redan finns kommer den inte att ersättas. Jämför det med " wp_cache_set Som alltid kommer att ersätta ett befintligt värde utan att kontrollera.

Som du kan se gjorde vi bara en liten ändring av den befintliga koden men sparade potentiellt många databassamtal som potentiellt gjorde laddningen snabbare.

Viktiga anteckningar

Den ohållbara cachen är endast tillgänglig medan den aktuella sidan laddas. När nästa sida laddas, kommer den att vara tom igen.

Lagringsstorleken är begränsad av det totala minnet som finns tillgängligt på PHP tilldelat av servern. Spara inte en stor uppsättning data, annars får du meddelandet "Minnet är slut".

Användningen av denna typ av cache är endast meningsfull för operationer som upprepas mer än en gång under skapandet av en sida.

Skapa enkelt din webbutik

Ladda ner gratis WooCommerce, de bästa e-handelspluggarna för att sälja dina fysiska och digitala produkter på WordPress. [Rekommenderas]

Det fungerar med WordPress från 2.0-versionen.

Det är det för den här tutorialen. Jag hoppas att det kommer att göra att du bättre kan cache din blogg.

Den här artikeln innehåller kommentarer 0

Lämna en kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade *

Den här webbplatsen använder Akismet för att minska oönskade. Läs mer om hur dina kommentarer data används.

Tillbaka till toppen
5 aktier
del2
tweet
Enregistrer3