WP-Plugin :: Readers_Post in Ajax
26. November 2006 — Zuletzt bearbeitet: 25. December 2006 | 4028x gelesen
Eine Erweiterung, um die zuletzt gelesenen Artikel mittels Ajax ständig aktualisiert anzeigen zu lassen.
Mein erstes Plugin hat sich überraschend schnell verbreitet. Mit solch einem Erfolg hätte ich nie gerechnet. Mittlerweile gibt es nicht nur eine chinesische Übersetzung, sondern es wird auch Platz in einem Buch über Wordpress finden.
Besonders die Option die zuletzt gelesenen Beiträge anzuzeigen ist beliebt. Schon kurz nach der Veröffentlichung des Plugins gab es die Anregung diese Funktion mittels Ajax zu verwirklichen. Damit würden die Besucher die zuletzt gelesenen Beiträge ständig aktualisiert angezeigt bekommen und es muß kein Reload der Seite passieren, um zu sehen, dass sich in dem Blog was tut.
Nun, derzeit habe ich praktisch keine Zeit, um sowas vernünftig zu programmieren. Aber ich kann hier eine alpha-Version anbieten, die auch schon auf meiner Startseite läuft. Die individuellen Anpassungen müssen von jedem, der dieses Add-on benutzen möchte, selbst angepasst werden.
Benötigt werden die Dateien getReader_Post_Content.php und Reader_Post_Content.php, die ins Plugin-Verzeichnis gelegt werden müssen.
In der Datei getReader_Post_Content.php erfolgt in der letzten Zeile der Aufruf der entsprechenden Anzeige. Das funktioniert nach dem gleichen Prinzip, wie im eigentlich Plugin mit der Funktion
last_posts(Anzahl,Zeichen,@vorher@,’nachher@);
Nur heißt die Funktion diesmal output() – zur besseren Unterscheidung.
Jetzt muß diese Funktion nur noch an der richtigen Stelle – also außerhalb der Loop – aufgerufen werden. Wichtig ist hierbei, dass ein HTML-Container mit der id “Readers_Post_Container” geschaffen wird, der dann dynamisch von der output-Funktion mit Inhalten gefüllt wird. Die eigentliche Ajax-Routine kann dann irgendwo auf der Seite – aber auch außerhalb der Loop – als normales JavaScript erfolgen:
var Reader_Post_Site = ‘/wp-content/plugins/getReader_Post_Content.php’;
Reader_Post_ajax = new sack(Reader_Post_Site);
Reader_Post_ajax.element = ‘Readers_Post_Container’;
Reader_Post_ajax.runAJAX();
window.setInterval(”Reader_Post_ajax.runAJAX()”, 30000);
Die Zahl in der setInterval-Funktion gibt die Anzahl der Sekunden mal 1000 bis zum Refresh an – im obigen Beispiel also 30 Sekunden.
Wie gesagt: das ist eine Alpha-Version! Deswegen ist noch sehr viel Handarbeit bei der Integration notwendig. Wer die Beschreibung nicht versteht sollte also die Finger davon lassen und sich etwas gedulden, bis ich eine vernünftige Version programmiert habe.
Für weitere Anregungen bin ich selbstverständlich immer offen.
Just a note for english readers: sorry, no translation yet, because this stuff is really ALPHA!




(16 Bewertungen, Durchschnitt: 4.25 von 5)


Sunday, 10. June 2007
Danke für den Hinweis auf die Alphaversion hier. Leider komme ich nicht 100% zurecht. Den Aufruf der Ajax-Routine als Java-Schnipsel habe ich (hoffe ich) soweit verstanden.
Müsste ja vermutlich so integriert werden…:
Heißt dann der PHP-Aufruf aber tatsächlich so?:
Bei mir gibt es dann nämlich ne Fehlermeldung… ;-(
Sunday, 10. June 2007
Anmerkung: Die beiden Dateien getReader_Post_Content.php und Reader_Post_Content.php liegen im Plugin-Verzeichnis.
Müssen die auch “aktiviert” werden? Sie werden bei mir in der Plugin-Übersicht nämlich nicht angezeigt… Hmmm….?
Sunday, 10. June 2007
Nein, die müssen nicht aktiviert werden. Ich habe auch ein wenig rumgebastelt, bis ich das mit dem Ajax zum Laufen gebracht habe. Vielleicht baust Du Dir erstmal eine Testseite und schaust, dass das richtig läuft.
Saturday, 15. March 2008
How did you get the (”XX minutes ago”) to appear in the AJAX recently read section?
Please advise!