Cachen mit der WordPress Transient API

Die Zeiten ändern sich.

Dieser Beitrag scheint älter als 13 Jahre zu sein – eine lange Zeit im Internet. Der Inhalt ist vielleicht veraltet.

WordPress besitzt eine API die explizit zum zeitlich gesteuerten Speichern von Daten gedacht ist – die Transient API. Diese API ist also für das Cachen von Daten in der Datenbank gedacht und recht einfach einzusetzen – dies sollte man auch tun.

Die Transient API ist nicht nur für Entwickler interessant, wie das folgende kleine Beispiel zeigt, welches die Daten der Tag-Wolke innerhalb der Datenbank speichert und so typischerweise im Theme Verwendung finden könnte.

Im ersten Schritt holen wir dazu den Eintrag aus der Datenbank, der als Inhalt für die Tag-Wolke dienen soll – $tag_cloud = get_transient( 'tag_cloud' );. Wenn dieser Eintrag fehlt schlägt, dann wird die Tag-Wolke normal über den Template Tag wp_tag_cloud() erzeugt. Einziger Unterschied gegenüber der „normalen“ Verwendung im Template des Theme, die direkte Ausgabe ist auf FALSE, da wir sie in einer Variable benötigen.
Im folgenden setzen wir nun den Eintrag in der Datenbank mit diesem Inhalt und geben einen Zeitwert mit: set_transient($transient, $value, $expiration);. Der Zeitwert, Parameter drei, wird in Sekunden angegeben.
Nun muss lediglich der Wert der Variable ausgegeben werden und fertig; ab nun bekommt die Tag-Wolke ihrer Daten aus dem Cache, der für einen Zeitraum von 12 Stunden existiert und dann neu erstellt wird.


$tag_cloud = get_transient( 'tag_cloud' );
if ( false === $tag_cloud || '' === $tag_cloud ){
	$args = array('echo' => false);
	$tag_cloud = wp_tag_cloud( $args );
	set_transient( 'tag_cloud', $tag_cloud, 60*60*12 );
}
echo $tag_cloud;

Das kleine Beispiel verdeutlicht hoffentlich die Möglichkeiten, die Transient API liefert einige weitere Funktionen, die im Codex sehr schön nachzulesen sind.

Von Frank Bültge

bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.