Einen RSS-Feed z.B. als Widget in die Sidebar des eigenen Blog integrieren ist in WordPress nun wirklich nicht schwer. Ich selber habe hier auf der Seite zwei RSS-Feeds eingebaut. Einmal den des News-Portals www.net-today.de und einen zweiten RSS-Feed von www.pcwelt.de.
Mein Grundgedanke war der, dass ich somit immer die neusten Informationen für meine Besucher (z.B. für Dich
) bieten kann. Leider ist mir direkt aufgefallen, dass die Feeds sich nicht so aktualisiert haben, wie ich mir das vorgestellt hatte. Ich habe also (wie immer) meine ausgelagerte Wissensdatenbank Google befragt und herrausgefunden, dass das RSS-Widget mit einem Cache-Mechanismus arbeitet.
Die Suche:
Also ab in die Optionen und die Lifetime des Caches für RSS-Feeds ändern … Ja von wegen
, man kann zwar alles mögliche in WordPress einstellen und für die aberwitzigsten Dinge die man sich vorstellen kann ein Plugin installieren, aber die RSS-Cache-Lifetime ist fest im System verdrahtet und nicht konfigurierbar. Zudem hat sich herrausgestellt, dass die Lebenszeit des Caches auf ganze 12 Stunden eingestellt ist. Das wiedersprach natürlich meinem “Net-Today”-News-Ticker Gedanken für die Sidebar komplett.
Die Suche nach einer Lösung die Lifetime des Caches zu verringern ging also weiter. Wie aber oben schon erwähnt habe ich kein RSS-Cache-Plugin gefunden, welches mit der aktuellen 2.9. Version von WordPress kompatibel ist. Der Grund hierfür ist meiner Meinung nach die seit WordPress 2.8 neu ins Boot geholte Klasse SimplePie (vorher war es MagpieRSS). Viele der ältenen Plugins arbeiten daher sicherlich noch mit der MagpieRSS-Klasse, was natürlich nicht funktionieren wird.
Allerdings möchte ich hier am Rande kurz erwähnen, dass die neue Klasse SimplePie nicht mehr von Ihren Schöpfern supported wird. Zum Glück haben die Macher von WordPress sich aber der Klasse angenommen und entwickeln diese weiter (einen Interessanten Artikel hierüber hat Frank Bültge in seinem Blog veröffentlicht).
Die Lösung:
Um nun die Cache-Lebenszeit zu ändern sollte man die Klasse SimplePie ein wenig besser kennen lernen. Sie arbeitet intern mit der Methode fetch_feed(), welche glücklicherweise einen Hook mit dem Namen wp_feed_cache_transient_lifetime besitzt, welcher es erlaubt das Caching zu beeinflussen. Dazu öffnen wir die Datei functions.php des benutzten Themes mittels der Admin-Oberfläche von WordPress und fügen dort die folgende Zeile ein um z.B. die Cache-Lifetime auf 20 Sekunden zu setzen:
add_filter( 'wp_feed_cache_transient_lifetime', create_function( '$a', 'return 20;' ) );
Nach dem Speichern sollte der Cache wie gewünscht arbeiten.
Nachteile und Ausblicke:
Das Verfahren hat natürlich zwei gravierende Nachteil.
- Jedes mal, wenn eine neue Version des Themes installiert werden muss, muss diese Änderung wieder nachgezogen werden.
- Die Änderung gilt global für alle eingebundenen RSS-Feeds und lässt sich so nicht für jeden Feed separat einstellen.
Für eine zukünftige WordPress-Version würde ich mir genau diese Lifetime-Option in dem RSS-Widget wünschen.
Ähnliche Artikel:





Kommentare