Transients API: die langsamen Teile von WordPress cachen
26.7.2026
Führt Ihr WordPress auf jeder Seite eine langsame Abfrage aus oder ruft eine externe API auf (etwa einen Wechselkurs oder eine Follower-Zahl), zahlen Sie diesen Preis für jeden Besucher erneut. Die Transients API ist ein eingebauter WordPress-Mechanismus, der dieses Ergebnis für eine festgelegte Zeit speichert, sodass die schwere Arbeit einmal läuft und spätere Besuche die fertige Antwort aus dem Cache erhalten. Kein Plugin nötig — alles ist Teil des WordPress-Kerns.
Was ein Transient ist
Ein Transient ist ein „Schlüssel → Wert"-Paar mit Ablaufzeit. Anders als eine normale Option (update_option), die für immer bleibt, hat ein Transient ein eingebautes Ablaufdatum. Ist es überschritten, behandelt WordPress es, als existiere es nicht, sodass Ihr Code es neu berechnet und wieder speichert. Ideal für Daten, die auch nach einigen Minuten oder Stunden noch „frisch genug" sind.
Drei Funktionen, die Sie kennen sollten
set_transient( 'key', $value, $duration )— einen Wert für eine bestimmte Zeit in Sekunden speichern.get_transient( 'key' )— den Wert zurückgeben oderfalse, wenn er abgelaufen ist oder nicht existiert.delete_transient( 'key' )— manuell löschen, wenn Sie wissen, dass die Daten veraltet sind.
Nutzen Sie für die Dauer der Lesbarkeit halber WordPress-Konstanten: HOUR_IN_SECONDS, DAY_IN_SECONDS, WEEK_IN_SECONDS.
Das typische Codemuster
Fast jeder Transient folgt derselben Form: Cache versuchen, und ist nichts da, berechnen und speichern.
$data = get_transient( 'latest_rates' );
if ( false === $data ) {
$data = call_the_api(); // der langsame Teil
set_transient( 'latest_rates', $data, 6 * HOUR_IN_SECONDS );
}
return $data;
Der erste Besucher zahlt für den API-Aufruf; alle anderen erhalten das Ergebnis die nächsten 6 Stunden sofort. Fällt die API aus, haben Sie das letzte gute Ergebnis im Cache statt einer leeren Seite.
Wo Transients gespeichert werden
Standardmäßig liegen Transients in der Tabelle wp_options. Das ist praktisch, hat aber einen Nachteil: Abgelaufene Transients werden nicht sofort gelöscht und verstopfen mit der Zeit die Tabelle, was das Laden der autoload-Optionen verlangsamt. Reinigen Sie die Datenbank also regelmäßig. Haben Sie einen Redis- oder Memcached-Object-Cache (viele gute Hoster bieten einen), speichert WordPress Transients automatisch im Arbeitsspeicher statt in der Datenbank — Lesevorgänge sind dann noch schneller und belasten wp_options nicht.
Wann ein Transient manuell löschen
Ein Transient läuft nach Zeit von selbst ab, doch manchmal veralten Daten früher. Beispiel: Sie cachen eine Produktliste für eine Stunde, aber ein Admin fügt nach 10 Minuten ein neues Produkt hinzu. Ergänzen Sie im Hook, der beim Speichern eines Produkts feuert, delete_transient( 'product_list' ), damit sich der Cache beim nächsten Besuch erneuert. Das nennt man Cache-Invalidierung und ist entscheidend für die Korrektheit.
Häufige Fehler
Erstens: nutzerspezifische Daten unter demselben Schlüssel cachen — dann sehen alle die Daten anderer. Fügen Sie in solchen Fällen die Nutzer-ID zum Schlüssel hinzu. Zweitens: ein zu langer Schlüssel; das Limit liegt bei 172 Zeichen. Drittens: sich für etwas Kritisches ohne Fallback-Logik auf einen Transient verlassen — ist der Wert false, muss der Code neu berechnen statt abzustürzen.
Häufige Fragen
Unterscheiden sich Transients vom Seiten-Cache? Ja. Der Seiten-Cache speichert die gesamte HTML-Ausgabe; Transients cachen ein kleines Stück Daten innerhalb von PHP. Sie sind genau dann nützlich, wenn Sie nicht die ganze Seite cachen können (z. B. teils dynamischer Inhalt).
Brauche ich ein Plugin? Nicht zur Nutzung — die Transients API ist Teil von WordPress. Ein Plugin (oder ein Object Cache beim Hoster) verbessert nur, wo Transients gespeichert werden.
Unsere WordPress-Hosting-Pakete bringen serverseitiges Caching und NVMe-Laufwerke mit, und ein Object Cache hält Transients für maximale Geschwindigkeit im Arbeitsspeicher. Sehen Sie sich unsere Pakete und Preise an.