Es gibt verschiedene Möglichkeiten, Ihre Website effizienter zu gestalten: Mit speziellen Plugins können Sie Seiten für statische HTML-Inhalte zwischenspeichern, andere ermöglichen Ihnen, alle SQL-Abfragen zwischenzuspeichern und Daten, und einige erlauben es Ihnen schließlich, JavaScript- und CSS-Dateien und sogar serverseitige Lösungen zu minimieren.

mise-en-hide-on-Wordpress

Aber selbst wenn Sie diese Plugins verwenden, verwenden Sie Methoden von zwischengespeichert internal für Datenbankobjekte und Ergebnisse Daten wird eine gute Entwicklungspraxis sein, da Ihr Plugin nicht von der Caching-Lösung des Endbenutzers abhängt. Ihr Plugin sollte selbst schnell sein und sich nicht auf andere Plugins verlassen, um die Drecksarbeit zu erledigen. Und wenn Sie denken, Sie sollten Ihren eigenen Cache-Verwaltungscode schreiben, liegen Sie falsch. WordPress bringt alles mit, was Sie brauchen, um verschiedene schnell zu implementieren zwischengespeichert de Daten. Sie müssen lediglich die Teile Ihres Codes identifizieren, die von der Optimierung profitieren, und einen Typ davon auswählen zwischengespeichert entsprechend.

WordPress implementiert zwei verschiedene Caching-Methoden:

nicht persistent

Die Daten bleiben im Cache, während die Seite geladen wird. (WordPress verwendet es, um die meisten Abfrageergebnisse aus der Datenbank zwischenzuspeichern.)

Hartnäckig

Dies hängt davon ab, wie die Datenbank funktioniert, und die zwischengespeicherten Daten können nach einer bestimmten Zeit selbst verfallen. (WordPress verwendet es, um RSS-Feeds, Updates usw. zwischenzuspeichern.)

In diesem Lernprogramm wird nur der nicht persistente Cache betrachtet.

So richten Sie den nicht persistenten "nicht persistenten" Cache ein

Wenn Sie Funktionen wie " get_posts () "Oder" get_post_meta () WordPress prüft zunächst, ob die benötigten Daten zwischengespeichert sind. Wenn ja, erhalten Sie Daten aus dem Cache. Andernfalls wird eine Datenbankabfrage ausgeführt, um diese Daten zu erhalten. Sobald die Daten wiederhergestellt sind, werden sie ebenfalls zwischengespeichert. Für Datenbankergebnisse, die beim Erstellen einer Seite wiederverwendet werden können, wird ein nicht persistenter Cache empfohlen.

Der interne nicht persistente Cache-Code von WordPress befindet sich in der Datei " cache.php "Im Verzeichnis" wp-includes ", und es wird vom" WP_Object_Cache ". Wir müssen zwei Grundfunktionen verwenden: " wp_cache_set () "Und" wp_cache_get () Gleichzeitig mit den Zusatzfunktionen " wp_cache_add () "," wp_cache_replace () "," wp_cache_flush () "Und" wp_cache_delete () “. Der zwischengespeicherte Speicher ist in Gruppen organisiert, von denen jeder Eintrag seinen eindeutigen Schlüssel benötigt. Um zu vermeiden, dass die Standard-WordPress-Daten gemischt werden, sollten Sie eindeutige Namen verwenden.

Beispiel

In diesem Beispiel erstellen wir eine Funktion mit dem Namen "d4p_get_all_post_meta ()", die alle mit einem Artikel verknüpften Metadaten abruft. Diese erste Version enthält kein Caching.

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

Jedes Mal, wenn Sie diese Funktion für denselben Artikel aufrufen, wird eine SQL-Abfrage ausgeführt. Hier ist die geänderte Funktion, die den nicht persistenten WordPress-Cache verwendet:

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

Hier verwenden wir eine Cache-Gruppe mit dem Namen " d4p_post_meta ", Und" post_id ", das ist der Schlüssel. Mit dieser Funktion prüfen wir, ob wir alle Daten im Speicher benötigen. Andernfalls führen wir den normalen Code aus, um Daten abzurufen, und fügen ihn dann dem Cache in Zeile 13 hinzu. Wenn Sie diese Funktion also mehrmals aufrufen, führt nur der erste eine SQL-Abfrage aus. Bei allen anderen Aufrufen werden Daten aus dem Cache abgerufen. Hier verwenden wir die Funktion " wp_cache_add ", Wenn die Kombination" Schlüsselgruppe "bereits vorhanden ist, wird sie nicht ersetzt. Vergleichen Sie das mit " wp_cache_set Welches wird immer einen vorhandenen Wert ersetzen, ohne zu überprüfen.

Wie Sie sehen, haben wir nur eine kleine Änderung am vorhandenen Code vorgenommen, aber möglicherweise viele Aufrufe an die Datenbank gespeichert, wodurch das Laden möglicherweise beschleunigt wurde.

wichtige Hinweise

Die nicht-persistente Cache ist beim Laden der aktuellen Seite nur zur Verfügung; sobald die nächste Seite geladen wird, wird es wieder leer sein.

Die Speichergröße wird durch den vom Server zugewiesenen Gesamtspeicher auf PHP begrenzt. Speichern Sie keine großen Datenmengen, da sonst möglicherweise die Meldung "Nicht genügend Speicher" angezeigt wird.

Die Verwendung dieses Cache-Typs ist nur für Vorgänge sinnvoll, die während der Erstellung einer Seite mehrmals wiederholt werden.

Es arbeitet mit Wordpress seit 2.0 Release.

Das ist alles für dieses Tutorial. Ich hoffe, es wird Ihnen helfen, das Cachen besser zu gestalten Ihr Blog.