Tweet | ![]() |
FeedBurner – Feed-Zähler zeigt immer 0 an?
-
Vor zwei Tagen habe ich euch ja schon beschrieben, mit welchem Code ihr einfach und schnell eure Feed-Abonnenten Anzahl anzeigen lassen könnt. Doch anscheinend gibt es dort Fehler, denn jeden Tag von 11-12 Uhr wird bei der Ausgabe anstatt der eigentlichen Abonennten-Anzahl nur eine Null (0) angezeigt. Dies haben Felix & Timo in den Kommentaren herausgefunden. Natürlich wollte ich dieses Problem lösen, doch wie?
Klar war nur, dass Feedburner morgens um 11-12 Uhr immer eine Aktualisierung durchführt und deswegen die 0 zustande kommt. Nun habe ich mir was einfallen lassen: Wie wäre es, wenn man den aktuellen Abonnenten-Stand einfach stündlich in einer Datei speichert & wenn laut FeedBurner API der Wert der Abonennten null beträgt, einfach der Wert aus der Datei angezeigt wird? So hat man immer eine realistische Zahl zum anzeigen und die User sind beim Anblick der Zahl nicht verwundert, warum keiner den Feed abonniert hat ;).
Hier ist nun also der Code, mit welchem ihr meine Idee auch auf eurem Blog umsetzen könnt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
<?php if(!file_exists('./feedreader')) fclose(fopen('./feedreader','w')); $feed = unserialize(file_get_contents('./feedreader')); if($feed['time'] <= time()) { $xml = simplexml_load_file("http://api.feedburner.com/awareness/1.0/GetFeedData?uri=IT-Runde"); $circulation = $xml->feed->entry['circulation']; if((int)$circulation > 0) $cache = fopen('./feedreader','w'); } if(!$cache) $feed = unserialize(file_get_contents('./feedreader')); $feedausgabe=$feed['feedreader']; $feed = array('feedreader' => (int)$circulation, 'time' => (time()+3600)); @!fwrite($cache, serialize($feed)); @fclose($cache); echo $feedausgabe; ?>
Diesen Code könnt ihr, wie auch schon den letzten, entweder in eure Template Dateien packen oder per PHP Widget in die Sidebar einfügen. Danach müsst ihr auf eurem Server nur noch folgende Datei hochladen: feedreader.zip
Dort wird dann immer die letzte aktuelle FeedBurner Abonnenten-Zahl gespeichert & gegebenenfalls ausgelesen. Am besten ladet ihr diese in euer Hauptverzeichnis, damit der Beispielcode oben auch funktioniert. Wenn ihr die feedreader.zip in einen anderen Ordner packt oder per WordPress Medienupload hochladet, müsst ihr die Pfade der Datei in dem Code anpassen. Bisher klappt alles, logisch ist im Code auch alles richtig, morgen früh um 11-12 Uhr werden wir es sehen :mrgreen:.
Tweet
25.07.2010 um 23:09 Uhr
Jau, gute Idee, habe mir jetzt deinen Code allerdings nicht näher angeguckt, aber die Idee verstehe ich 😉
Wobei ich hoffe, dass Feedburner diesen Bug behebt 😉
Ich hatte auch schon überlegt, ob man über eine if/else-condition einfach morgens die Zeile ganz ausblendet, aber deine Idee ist da natürlich besser 🙂
25.07.2010 um 23:38 Uhr
Spitzen Idee, hübschen Code haste dazu gebastelt. Da freuen sich sicherlich viele Leute 😛
27.07.2010 um 13:07 Uhr
Sehr schön, die Überlegung ist total genial eigentlich und doch so einfach. Spitze! 😉
Auf meiner Webseite habe ich das jetzt auch ausgetauscht im Newsfeed 🙂
27.07.2010 um 13:39 Uhr
So, bei mir zeigt er wieder 0 an, bei dir klappts, dann weiß ich ja bescheid 🙂 Werde deinen Code auch bei mir integrieren 😉
27.07.2010 um 17:14 Uhr
Hab den Code jetzt auch bei mir eingebunden, musste ihn allerdings noch etwas anpassen, mein PHP scheint etwas pingeliger zu sein 😉
Habe außerdem eine Variable $file gemacht, in der ich das Verzeichnis und die Datei direkt als String übergebe, diese Variable nutze ich dann anstelle von ‘./feedreader’ 😉