2008-09-10 6 views
3

Ich versuche, ein Wordpress-Plug-in zu schreiben, das automatisch einen Blogpost zu einer bestimmten Tageszeit veröffentlicht. Lesen Sie beispielsweise eine Reihe von RSS-Feeds und veröffentlichen Sie einen täglichen Auszug aller neuen Einträge.Ausführen einer geplanten Aufgabe in einem Wordpress-Plug-in

Es gibt Plug-Ins, die etwas Ähnliches tun, was ich möchte, aber viele davon basieren auf einem Cron-Job für die automatische Planung. Ich werde das tun, wenn ich muss, aber ich hatte gehofft, dass es einen besseren Weg gibt. Es ist nicht gerade freundlich, einen typischen Wordpress-Benutzer dazu zu bringen, einen Cron-Job hinzuzufügen.

Gibt es eine gute Möglichkeit, eine Aufgabe zu planen, die von einem Wordpress-Plug-in ausgeführt wird? Es muss nicht genau zur richtigen Zeit laufen.

Antwort

0

vBulletin verwendet eine Art Pseudo-Cron-System, das grundsätzlich bei jedem Seitenzugriff einen Zeitplan überprüft und alle fälligen Prozesse auslöst.

Es ist eine Weile her, seit ich mit Wordpress gearbeitet habe, aber ich denke, dass etwas wie dieses funktionieren sollte, wenn es auf jeder Seitenansicht läuft.

+0

Wenn Sie es abhängig von jedem Versuch gemacht, Kommentar Spam, könnten Sie Millisekunde Genauigkeit haben. :-) –

0

Ich denke, der beste Weg, dies zu tun ist mit einem Pseudo-Cron. Ich habe es mehrmals gesehen, und obwohl es nicht genau im Timing ist, sollte es tun, was Sie tun müssen. Da in Wordpress die index.php als erstes immer auf Basis der Einstellungen in der .htaccess-Datei ausgelöst wird, erstellen Sie eine Datei mit dem Namen pseudo-cron.php, legen Sie sie im Stammverzeichnis ab und fordern Sie sie dann einmal vom Index an. Immer wenn jemand die Website aufruft, wird er ausgeführt, und Sie können ihn verwenden, um ein Skript zu initiieren und zu überprüfen, ob ein anderer täglicher Digest erstellt werden muss, abhängig von der Tageszeit und wann der vorherige Digest ausgeführt wurde.

3

pseudo-cron ist gut, aber die beiden Themen hat sie ist

1, Es erfordert jemand zu "Hit" den Blog auszuführen. Low-Volume-Sites werden möglicherweise weit reichende Ausführungszeiten haben, also nicht zwei spezifische über die Zeit sein.

2, Die Verarbeitung erfolgt vor dem Laden der Seite. Wenn also die Ausführungszeit eintritt und Sie viele "Cron" -Einträge haben, verärgern Sie potentiell die Besucher, indem Sie ihnen eine unterdurchschnittliche Erfahrung geben.

Nur meine 2 Cent :-)

+0

Ich denke du liegst falsch bei # 2. WordPress generiert einen asynchronen curl() -Aufruf an sich selbst, um den Job auszulösen, sodass es für Besucher keine merkliche Verzögerung gibt. Wenn Sie Workaround # 1 verwenden möchten, können Sie einen Cron-Job für 'wget http://example.com/wp-cron.php 'einrichten. –

Verwandte Themen