Eines der schönsten Dinge bei der Arbeit mit WordPress ist die Leistungsfähigkeit seiner API. Beim Erstellen von Themes und / oder Plugins macht die Plattform das Serialisieren und Abrufen von Daten denkbar einfach. Tatsächlich abstrahiert die API viele der häufigsten Herausforderungen bei der Arbeit mit Daten wie der Datenbereinigung und dem effizienten Abrufen von Daten auf Anfrage. In den nächsten beiden Beiträgen schauen wir uns die Transients-API an, warum es wichtig ist, wie sie verwendet wird, und schauen uns eine praktische Implementierung an, die wir in zukünftigen Projekten verwenden können.
Im Allgemeinen wird dies alles mit der WordPress-Options-API erreicht, die sich hervorragend zum Speichern, Aktualisieren und Lesen von Optionen eignet. Wenn Sie jedoch mit einer großen Datenmenge arbeiten, bietet die Options-API möglicherweise nicht die bestmögliche Leistung . Insbesondere können Sie möglicherweise die Gesamtleistung Ihrer Arbeit (und deren Erweiterbarkeit mit anderer Software) verbessern, wenn Sie die Transients-API nutzen möchten.
Einfach ausgedrückt, bietet die Transients-API eine Möglichkeit, Informationen mit Ablaufzeit in der WordPress-Datenbank zu speichern. Beim Speichern von Informationen mithilfe der Options-API werden Werte mit einem Schlüssel und einem Wert gespeichert.
Angenommen, Sie arbeiten mit einem Plugin, das Ihren Twitter-Benutzernamen in einem benutzerdefinierten Feld mit dem Namen "Twitter" speichert. Sie können die Art und Weise, in der WordPress diese Informationen speichert, konzeptualisieren, wobei "Twitter" als Schlüssel und Ihr Benutzername (z. B. "MoreTom") als Wert verwendet wird.
Der Unterschied in der Art und Weise, wie die Transients-API ihre Informationen speichert, besteht darin, dass ein drittes Datenelement - eine Ablaufzeit - in der Datenbank gespeichert wird. Dies ist der Schlüssel zum Beschleunigen der Leistung, insbesondere beim Caching.
Darüber hinaus werden über die API gespeicherte Daten (so genannte Transienten) durch Zwischenspeichern von Plugins und Zwischenspeicherungssoftware genutzt, während dies bei WordPress-Optionen nicht der Fall ist. Wenn Sie zum Beispiel einen Wert mit der Transients-API speichern, wird die Zwischenspeicherungssoftware (z. B. memcached) von WordPress dazu aufgefordert, die Werte so zu speichern, dass sie ihn bei jeder Seitenanfrage problemlos abrufen kann, anstatt jedes Mal die Datenbank zu treffen.
Cool was?
Der Nachteil ist, dass für Transienten eine Verfallszeit gilt, die nicht garantiert ist, dass sie eine Datenbank sind. Wir sollten daher sicherstellen, dass die Werte, die gespeichert werden, diejenigen sind, die für den Erfolg des Designs oder Plugins nicht kritisch sind (obwohl es eine Möglichkeit gibt, dies zu tun schaffe das, dass wir im nächsten Post checken werden).
Das Wichtigste, das Sie beachten sollten, ist, dass Sie nicht jeden Optionswert mithilfe der Transients-API speichern möchten. Eine gute Faustregel ist das Speichern der Werte, die häufig am teuersten sind und für das Laden von Seiten nicht erforderlich sind.
So nützlich das Verständnis der API auch ist, der wirkliche Vorteil liegt darin, dass sie tatsächlich verwendet wird.
Das Schöne an den Transient-APIs ist, dass sie mit drei Funktionen, von denen Sie zwei regelmäßig verwenden, sehr gut implementiert ist. Die drei Hauptoperationen für Transienten sind das Setzen von Werten, das Abrufen von Werten und das Löschen von Werten.
Das Speichern eines Transienten erfordert drei spezifische Informationen:
Die Signatur der Methode lautet wie folgt:
Einfach richtig? Ein einfaches Beispiel für den Aufruf dieser Funktion wäre folgendes:
set_transient ('twitter', 'MoreTom', 60 * 60 * 12);
Das Abrufen eines Transienten ist noch einfacher als das Einstellen. Tatsächlich ist es dem Abrufen von Optionen aus der WordPress-Options-API sehr ähnlich. Alles, was Sie wissen müssen, ist der Schlüssel, der beim Festlegen des Werts definiert wurde.
Die Signatur der für die Rückgabe des Werts verantwortlichen Methode lautet:
Im folgenden Beispiel möchten wir den Twitter-Benutzernamen des Benutzers abrufen, indem wir Folgendes anrufen:
get_transient ('twitter');
Einfach, huh?
Das Festlegen und Abrufen von Transienten sind die zwei am häufigsten verwendeten Funktionen der API. Es gibt jedoch Zeiten, in denen Sie möglicherweise einen Wert entfernen müssen, bevor die Ablaufzeit erreicht ist.
In diesem Fall können Sie die Funktion delete_transient nutzen:
Ähnlich wie beim Abrufen eines Werts übergeben Sie einfach den Schlüssel, mit dem der Übergangswert identifiziert wird, an die Funktion:
delete_transient ('twitter');
Die Funktion gibt true zurück, wenn der Wert ordnungsgemäß entfernt wurde, false, wenn der Wert nicht entfernt wurde oder wenn das Löschen des Werts nicht ordnungsgemäß funktioniert hat.
Offensichtlich zahlen sich die Leistungsvorteile im Vergleich dazu aus, wie schwierig es ist, die API zu nutzen. Das Wichtigste, das Sie beachten sollten, ist vielleicht, dass Sie nicht jeden Optionswert mithilfe der Transients-API speichern möchten - nur diejenigen, die am teuersten sind und die sich selten ändern.
Im nächsten Beitrag sehen wir eine praktische Implementierung der API, indem wir ein Plugin erstellen, das die API nutzt.