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.