Hinweis: Der folgende Artikel hilft Ihnen dabei: Erste Schritte mit der WordPress Transients API
WordPress als Plattform hat sich im letzten Jahrzehnt weiterentwickelt und ist für Entwickler wesentlich robuster geworden. Aber das war nicht immer so.
In der Vergangenheit haben Entwickler die meisten internen Datenverarbeitungslogiken von Grund auf implementiert. Dies führte zu einer erheblichen Menge an unsicherem und ungetestetem Code in Plugins und Themes – normalerweise kopiert und eingefügt von Websites wie StackOverflow.
Seitdem hat WordPress einige bemerkenswerte Ergänzungen eingeführt, die die Interaktion der Entwickler mit WordPress-Komponenten standardisierten. Gutenberg hat beispielsweise die Art und Weise, wie Benutzer mit dem Post-Editor interagieren, komplett überarbeitet. Die Settings-API abstrahiert die Erstellung und Verwaltung benutzerdefinierter Einstellungsseiten und die Transients-API kümmert sich um die Erstellung und den Abruf von zwischengespeicherten Informationen.
Diese Änderungen legten den Grundstein für WordPress heute und positionierten sich als Plattform, auf die Entwickler vertrauen können, um komplexe Anwendungen zu erstellen – nicht nur Blogs.
In diesem Blog schauen wir uns ein paar Anwendungsbeispiele für WordPress-Transienten an, verstehen, wie die einzelnen Hilfsfunktionen funktionieren, gehen die häufigsten Fallstricke, Tipps und Tricks durch und überprüfen einige der am häufigsten verwendeten Plugins zur Verwaltung Transienten.
Wenn Sie sich bereits überfordert fühlen, bieten wir verwaltete Hosting-Lösungen für WordPress an, sodass Sie sich keine Gedanken über die Optimierung Ihrer Website machen müssen. Wir gehen genau darauf ein, worauf Sie bei der Suche nach den besten WordPress-Hosting-Diensten achten sollten, und bieten außerdem Anleitungen zur Funktionsweise von WordPress an, damit Sie das Innenleben des Frameworks besser verstehen und möglicherweise einige Ideen für die optimale Nutzung von Transienten erhalten.
Was sind WordPress-Transienten?
WordPress-Transienten sind im Wesentlichen zwischenspeicherbare Daten, die mit einem Namen gekennzeichnet und mit einer Ablaufzeit versehen sind (denken Sie an so etwas wie eine Backend-Version eines Cookies). Diese Daten werden normalerweise in Ihrer Datenbank (innerhalb der Tabelle) gespeichert, können aber auch so konfiguriert werden, dass sie eine Caching-Lösung eines Drittanbieters nutzen, um sie in Ihrem Objektcache zu speichern (wie Memcached oder Redis).
Wenn Sie mehr über die Einrichtung einer Drittanbieter-Caching-Lösung für Ihre WordPress-Transienten erfahren möchten, Sehen Sie sich diese Anleitung an, um zu erfahren, wie Sie Redis Object Caching aktivieren.
Was sind Transienten in WordPress?
Was sind Transienten in WordPress? Eine der häufigsten Anforderungen an eine Caching-Lösung besteht darin, die Ergebnisse eines externen API-Aufrufs zu speichern, und Transienten bieten eine einfache Möglichkeit, dies zu erreichen.
Wenn eine API-Anfrage nicht zwischengespeichert bleibt, kann sie aufgrund unvorhersehbarer Antwortzeiten des API-Servers schnell zu einem Engpass in Ihrer Anwendung werden. Abhängig von der Größe Ihrer Anwendung können Sie auch Zeitstrafen erhalten, die auf der Anzahl der Anfragen pro Minute basieren, die Ihr Server stellt.
Mit WordPress können Sie ganz einfach steuern, wie lange ein Transient gespeichert wird, und so Ihre Anwendung für den Datenverkehr optimieren, den sie erhält. Durch das Festlegen einer längeren Ablaufzeit für einen API-Aufruf können Sie eine erhebliche Menge potenzieller Anfragen einsparen, was auch die Belastung Ihres API-Servers verringert.
Eine gute Caching-Strategie kann einen großen Beitrag zur Verbesserung der Gesamtserverkosten und der Bandbreitennutzung leisten. Dies hängt natürlich alles von der Situation Ihrer Anwendung ab und Caching ist nicht das A und O, um alle Lastprobleme in Ihrer Anwendung zu beheben.
Wenn Sie daran interessiert sind, robustere Caching-Strategien in Ihrer Anwendung zu implementieren, Sehen Sie sich diese Anleitung an, um zu erfahren, wie Sie das Ganzseiten-Caching für verwaltete WordPress- und WooCommerce-Sites aktivieren.
Wir haben ein sehr vereinfachtes Flussdiagramm erstellt, damit Sie visualisieren können, wie WordPress-Transienten (und das Caching im Allgemeinen) funktionieren, um unnötige API-Aufrufe zu vermeiden.
Dieser Prozess beginnt in dem Moment, in dem Ihre Anwendung entscheidet, dass sie Daten von einer API abrufen muss. Wenn kein Transient vorhanden ist, wird die API-Anfrage ausgelöst und als Ergebnis in einem neuen Transienten gespeichert. Wenn Ihre Anwendung das nächste Mal eine Anfrage startet, ist der Transient vorhanden und enthält dieselben Daten, die ursprünglich von der API zurückgegeben wurden. Sie haben gerade Ihre ersten paar Bytes an Bandbreite gespart! 🎉
Ein weiterer häufiger Anwendungsfall besteht darin, die Ergebnisse eines komplexen Aufrufs an oder einer seiner Alternativen (wie ) zu speichern. Wie zuvor haben wir ein sehr einfaches Flussdiagramm erstellt, damit Sie sich leicht vorstellen können, wie WordPress-Transienten in viele Szenarien passen.
Der Prozess ist der gleiche. Es beginnt immer dann, wenn Ihre Anwendung einen Prozess ausführen muss, der die Datenbank verwendet. Wenn für die Abfrage kein Transient erstellt wurde, wird die Abfrage wie gewohnt durchgeführt, die Ergebnisse werden jedoch in einem neuen Transienten gespeichert. Wenn Ihre Anwendung das nächste Mal eine entsprechende Abfrage durchführen muss, ist der Transient bereits vorhanden und enthält dieselben Daten, die von der ursprünglichen Abfrage zurückgegeben wurden.
Dadurch können wir das Flussdiagramm noch einfacher gestalten, um zu veranschaulichen, wie Sie WordPress-Transienten mühelos zu Ihrer Anwendung hinzufügen können.
Die Implementierung von WordPress-Transienten verbessert das Endbenutzererlebnis, da nicht auf den Abruf von Informationen gewartet werden muss. Sie sparen am Ende nicht nur Geld, sondern generieren auch mehr, da schnellere Ladezeiten in Ihrer Anwendung oft zu einem besseren organischen Traffic von Suchmaschinen führen.
So verwenden Sie WordPress-Transienten
Abhängig von der Umgebung, in der Ihre Anwendung arbeitet, bietet WordPress drei Methoden zum Umgang mit Transienten. Hier finden Sie in keiner bestimmten Reihenfolge die vollständige Liste der öffentlichen Methoden der WordPress Transient API:
Die Variationen stehen für die Verwendung in einer WordPress-Multisite-Umgebung zur Verfügung, sind jedoch funktionell mit ihren Nicht-Site-Varianten identisch.
Ein WordPress-Transient benötigt drei Parameter:
1. : Eine eindeutige Kennung für die gespeicherten Daten.
2. : Die Daten, die Sie speichern möchten.
3. : Die Zeit in Sekunden, bis die Daten ablaufen sollen. Der Standardwert ist 0, aber damit Transienten wirksam sind, muss dieser Wert größer als 0 sein.
Sie müssen alle drei Parameter nur dann kennen, wenn Sie den Transienten erstellen. Danach benötigen Sie nur noch den Namen des Transienten, um die Daten abzurufen oder zu löschen.
Holen Sie sich den WordPress-Transienten
Als Nächstes zeigen wir Ihnen ein reales Beispiel dafür, wie diese Flussdiagramme in PHP implementiert würden. Wir konzentrieren uns darauf, die Logik rund um die Arbeit mit Transienten zu erklären und zu erklären, wie Sie heute damit beginnen können. Machen Sie sich keine Sorgen, wenn Sie einen Teil des angezeigten Codes nicht verstehen. Uns interessiert nicht, wie die Daten aufgebaut sind. Es dient nur dazu, einen realen Kontext rund um die WordPress Transient API-Methoden zu zeigen.
Um Daten von einem Transienten abzurufen, müssen Sie lediglich den Namen des Transienten kennen. Die Funktion, nach der wir suchen, ist , oder wenn Sie sich in einer WordPress-Multisite-Umgebung befinden.
…
$price = (float) get_transient( ‘product_183_price’ ) ?: 300.0;
$name = (string) get_transient( ‘book_345_name’ ) ?: ‘John Doe’;
$variants = (Array) get_transient( ‘product_183_variants’ ) ?: [];
…
In der ersten Zeile erstellen wir eine Preisvariable, indem wir das Ergebnis in einen Float-Typ umwandeln. Wenn der Transient nicht vorhanden ist, wird ein Standardwert verwendet. Dies liegt daran, dass die zurückgegebenen Daten immer ein boolescher Wert vom Typ „false“ sind, wenn ein Transient nicht existiert, keinen Wert hat oder bereits abgelaufen ist.
Das Symbol in PHP wird als ternärer Operator bezeichnet und ist eine vereinfachte Methode zum Schreiben einer if-Anweisung, bei der der Wert nach dem Operator zu dem wird, der zurückgegeben wird, falls der zuvor verglichene Wert falsch ist.
Die anderen beiden Zeilen sollen zeigen, wie jede Art von Wert für Transienten verwendet werden kann. Wir wandeln eine Namensvariable in einen String und ein Array um, das eine Liste mit Informationen enthalten würde. Fast alles, was einer Variablen zugewiesen werden kann, kann als WordPress-Transient gespeichert werden (dazu später mehr).
Entfernen Sie den gespeicherten Transienten
Das Entfernen von Transienten ist häufig Daten vorbehalten, die von etwas anderem abhängen, das gerade entfernt wird oder wurde. Wenn Sie beispielsweise die Scorekarte einer Person in einem Spiel im Auge behalten, diese aber beschließt, mit dem Spielen aufzuhören, ist die Verfolgung dieser Scorekarte nicht mehr erforderlich.
… delete_transient( ‘soldier_76’ );…
Das Löschen eines Transienten ist von Vorteil, wenn Ihre Anwendung ständig Dinge erstellt und entfernt, ein Transient jedoch nach Ablauf der Zeit automatisch gelöscht wird – mehr dazu später. Möglicherweise möchten Sie einen Transienten auch manuell löschen. Anstatt auf den Ablauf des Transienten zu warten, können Sie einfach den Transienten-Cache leeren, um den erneuten Erhalt eines aktualisierten Werts zu erzwingen.
Speichern Sie WordPress-Transienten
Um einen Transienten zu speichern, müssen Sie ihn benennen, ihm einige Daten zuweisen und eine Zeit in Sekunden nach seiner Erstellung festlegen. Die von Ihnen zugewiesenen Daten müssen in keiner Weise behandelt werden, und die einzige Voraussetzung ist, dass dies der Fall ist Der Wert ist serialisierbar. Wenn Sie nicht sicher sind, was das bedeutet, machen Sie sich keine Sorgen. Die meisten gängigen Variablentypen sind standardmäßig serialisierbar. Die Daten müssen auch nicht mit SQL maskiert werden – dies wird alles von WordPress für Sie erledigt.
…
$response = wp_remote_get( ‘https://example.tld/subscribers’ );
set_transient( ‘subscriber_count’, $response[‘body’]HOUR_IN_SECONDS );
…
In diesem Beispiel speichern wir alles, was von der GET-Anfrage kommt. Wir hätten auch die vollständige Variable speichern können, da es sich nur um ein Array handelt. Eine gute Vorgehensweise besteht jedoch darin, die Menge an Informationen zu reduzieren, die wir in unserem Cache speichern, sodass Sie nur das speichern, was Sie tatsächlich benötigen.
Wir verwenden . Dies ist eine sehr hilfreiche, von WordPress definierte Konstante, die Sie überall in Ihrem Plugin oder Theme verwenden können. Hier ist die vollständige Liste der zeitbezogenen Konstanten, die Sie verwenden können:
Bitte beachten Sie, dass es sich dabei um Näherungswerte handelt, bei denen 30 angenommen werden und Schaltjahre nicht berücksichtigt werden. Wenn Sie genaue Informationen benötigen, sollten Sie die Verwendung von oder in Betracht ziehen.
Wenn Sie mehr über die von WordPress definierten Standardkonstanten erfahren möchten, schauen Sie sich die an default-constants.php Datei im offiziellen WordPress GitHub Repository
Ablauf der WordPress-Transienten
Die Zeit ist sehr wichtig, damit WordPress-Transienten als Caching-Lösung funktionieren, da die Transienten sonst für immer gespeichert werden. Das würde es im Wesentlichen nur zu einem regulären machen, das über eine eigene API verfügt. Der Ablauf des Transienten ist erforderlich, damit WordPress den Transienten nach seinem Ablauf löschen kann.
Dies erfolgt nicht vollständig automatisch, da der Transient nicht gelöscht wird, sobald er abläuft. Stattdessen wird es beim nächsten Laden Ihrer Anwendung nach Ablauf der Übergangszeit gelöscht. Dies ist eine Einschränkung der Funktionsweise geplanter Jobs in WordPress. Da es sich um eine PHP-Anwendung handelt, kann sie nur ausgeführt werden, wenn eine HTTP-Anfrage an den Server gestellt wird.
Eine Möglichkeit, diese Einschränkung zu umgehen, besteht darin, eine Datei zu erstellen, die auf Systemebene ausgeführt wird, und sie zum Löschen abgelaufener Transienten zu verwenden. Dies wäre jedoch ein Thema für einen anderen Artikel.
Diese Einschränkung sollte Sie jedoch nicht davon abhalten, WordPress-Transienten zu verwenden. Da der vorübergehende Löschvorgang stattfindet, bevor Ihr Plugin- oder Theme-Code ausgeführt wird, ist es nicht entscheidend, dass der vorübergehende Vorgang technisch gesehen nach seinem Ablauf erfolgt.
Hier ist der letzte Codeausschnitt, in dem Sie sehen können, wie alles zusammenpasst. Dies ist die Codedarstellung des Flussdiagramms, das wir zuvor untersucht haben.
…
$subscriber_count = get_transient( ‘subscriber_count’ );
Wenn ( $subscriber_count === FALSCH ) { # Transient existiert nicht oder ist abgelaufen. $subscriber_count = 5;
set_transient( ‘subscriber_count’, $subscriber_count, MINUTE_IN_SECONDS * 60)}
…
Für dieses Beispiel haben wir keinen Standardwert festgelegt, da wir wissen möchten, ob der Rückgabewert den Transienten neu generieren soll.
Wenn Ihre Anwendung zum ersten Mal ausgeführt wird, liegt das daran, dass der Transient noch nicht erstellt wurde. Dann wird der Bedingungsblock eingegeben, dieselbe Variable erneut zugewiesen und gespeichert.
Wenn Ihre Anwendung zum zweiten Mal ausgeführt wird, ist der Transient vorhanden. Das ist es, was anstelle von „false“ zurückgegeben wird. Dadurch wird die Bedingung vermieden und die Logik Ihrer Anwendung ohne größere Umgestaltung fortgeführt. Wir verwenden denselben Variablennamen wieder, sodass wir darauf vertrauen können, dass er letztendlich über die Daten verfügt, die wir benötigen.
Fallstricke und Tipps für Transienten
Transienten sollten keine All-End-All-Lösung sein. Wenn Ihre Anwendung Daten verarbeiten muss, die immer eine neue Antwort benötigen, sollten Sie keine Transienten verwenden, um sie zu beschleunigen. Transienten werden am besten für Daten verwendet, die mehrmals auf der Website angezeigt werden oder die sich nicht sehr oft ändern.
Wenn Sie Ihre Datenbank als Speicher für WordPress-Transienten verwenden, ist der Name auf 172 Zeichen beschränkt. Dies liegt daran, dass WordPress dem von Ihnen übergebenen Namen automatisch einige Schlüsselwörter hinzufügt, um den Überblick zu behalten.
Der Wert, den Sie in einem Transienten speichern, kann nahezu beliebig sein. Wenn Sie jedoch einen booleschen Wert in einem Transienten speichern müssen, wird empfohlen, ihn mithilfe von Konstanten oder Enumerationen in ein Array oder einen ganzzahligen Wert zu konvertieren. Dies liegt daran, dass wir prüfen müssen, ob der Übergang vorhanden ist oder nicht. Das Speichern eines falschen Werts würde daher zu sehr schwierigen Debug-Problemen führen.
Plugins für den Umgang mit Transienten
Transientenmanager bietet Ihnen eine einfache Benutzeroberfläche zur Verwaltung Ihrer Transienten. Sie können Transienten suchen, bearbeiten und löschen und sogar die Erstellung von Transienten unterbrechen, um das Testen und Debuggen zu erleichtern. Der einzige Nachteil dieses Plugins besteht darin, dass es nur funktioniert, wenn Sie Ihre Datenbank zum Speichern von Transienten verwenden. Daher wird es im Allgemeinen nur als lokales Entwicklungstool verwendet.
Abfragemonitor ist ein Plugin, das Ihnen unter anderem anzeigen kann, welche Transienten aktiv sind und welche Transienten während Ihrer letzten HTTP-Anfrage aktualisiert wurden. Dies ist ein sehr leistungsfähiges Plugin, das für die lokale Entwicklung oder zum Debuggen von Leistungsproblemen verwendet werden kann.
Abgelaufene Transienten löschen ist ein Plugin, das tut, was es verspricht. Es wird ein neuer geplanter Job in Ihrer WordPress-Installation hinzugefügt, um alle nach Ablauf noch verbleibenden vorübergehenden Aufgaben zu entfernen.
Probieren Sie WordPress-Hosting mit Hostinger aus
Obwohl dies alles einschüchternd wirken kann, wissen Sie jetzt, was Transienten in WordPress sind und wie und wann Sie sie verwenden. Schließlich sind sie ein unverzichtbares Werkzeug für Ihre WordPress-Anwendung.
Wenn Ihre Anwendung zu wachsen beginnt und Sie der Meinung sind, dass die Implementierung von WordPress-Transienten nicht ausreicht, um die Leistung Ihrer Website zu verbessern, ist es möglicherweise an der Zeit, auf eine vollständig verwaltete WordPress-Hosting-Lösung zu aktualisieren.
Bei Hostinger bieten wir eine 30-tägige Geld-zurück-Garantie, weil wir sicher sind, dass Sie davon begeistert sein werden. Andernfalls erstatten wir Ihnen das Geld, wenn Sie dies nicht tun. Schauen Sie sich unsere WordPress-Hosting-Pläne an, um noch heute loszulegen.