11.4. Hinweise und Notizen

Wie auch in der Options-API existieren in der Transient-API auch spezielle Funktionen für die Multisite-Umgebung:

  • set_site_transient()
  • get_site_transient()
  • delete_site_transient()

Im Wesentlichen sind sie gleich aufgebaut. Das heißt, sie werden mit den selben Parametern aufgerufen und haben die selben Rückgabewerte. Der Unterschied liegt darin, dass die Funktionen intern die „Netzwerk-Options-API“ nutzt (siehe Kapitel 4.4.7). Konkret sind das die Funktionen get_site_option(), set_site_option(), update_site_option() und delete_site_optino().

Namensgebung

You’re not allowed to see this content. Please log in first.

Beschränkung des Transient-Namens

set_site_transient() schreibt seinen Wert nicht in die wp_options Datenbanktabelle. Stattdessen nutzt es die Tabelle wp_sitemeta, die eigentlich teil der Metadata API ist (Sie erfahren später mehr darüber). Der Transient-Name wird dabei in die Spalte meta_key geschrieben. Diese Spalte hat eine maximale Länge von 255 Zeichen.

Das bedeutet, dass Sie – abgezogen von der Länge des Strings _site_transient_timeout_ (24 Zeichen) – noch 231 Zeichen verwenden können.

Technische Details und Hinweise

Die Transient-API ist ein tolles Tool um mehr Geschwindigkeit aus dem eigenen Script herauszuholen. In der Regel verwendet WordPress die MySQL-Tabelle als Zwischenspeicher. Aber auch das kann Nachteile haben. Müssen sehr viele Transienten von der Datenbank geholt werden verliert ein Skript auch hier deutlich an Geschwindigkeit. Trotzdem ist es schneller, vormals abgefragte Daten von der Datenbank zu holen als sie über eine wp_remote_*()-Funktion erneut abzurufen. Es gilt: der individuelle Anwendungsfall entscheidet ob die Transient-API ihren Weg in Ihr eigenes Projekt findet.

Autoloading

You’re not allowed to see this content. Please log in first.

Der Object-Cache

In der Datei wp-settings.php wird die Funktion wp_start_object_cache()4 aufgerufen. Diese wiederum ruft standardmäßig die Funktion wp_cache_init() auf. Diese erstellt dann das Cache-Objekt WP_Object_Cache in die globale Variable $wp_object_cache.

Der Object-Cache ist also nichts anderes als eine globale Variable die über die Prozesslaufzeit sozusagen “mitgeschleppt“ wird und auf dessen Daten immer wieder zurückgegriffen werden können, falls diese denn schon abgerufen wurden. Nach dem “Herunterfahren“ (also nach der Skriptlaufzeit) wird die Variable gelöscht und alle Inhalte sind verloren.

Individueller Object-Cache

Es gibt aber auch eine Möglichkeit das Cache-Objekt nach der Skriptlaufzeit zu erhalten. Die Funktion wp_start_object_cache()5 sucht nach zuerst nach der Datei wp-content/object-cache.php und setzt damit die globale Variable $_wp_using_ext_object_cache mittels wp_using_ext_object_cache() auf true.

You’re not allowed to see this content. Please log in first.

Stolperfallen

„Es ist nicht alles Gold was glänzt“ sagt ein deutsches Sprichwort. Und das gilt auch für den Object-Cache und Transients im allgemeinen. Merken Sie sich folgendes:

You’re not allowed to see this content. Please log in first.

  1. https://core.trac.wordpress.org/browser/tags/3.9.1/src/wp-includes/option.php#L160 ↩︎
  2. https://core.trac.wordpress.org/browser/tags/3.9.1/src/wp-settings.php#L86 ↩︎
  3. https://core.trac.wordpress.org/browser/tags/3.9.1/src/wp-settings.php#L86 ↩︎
  4. http://www.leaseweblabs.com/2013/03/memcache-vs-memcached-php-benchmark/ Stand: 26.06.2014 ↩︎
  5. Vergl. https://docs.oracle.com/cd/E17952_01/refman-5.5-en/ha-memcached-faq.html, abgerufen am 25.06.2015 ↩︎