1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Cronjob für Plugin erstellen?

Dieses Thema im Forum "Plugins und Widgets" wurde erstellt von orangenetworxs, 26. Januar 2014.

Schlagworte:
  1. orangenetworxs

    Registriert seit:
    26. Januar 2014
    Beiträge:
    11
    Zustimmungen:
    0
    Hallo liebe WP Gemeinde.

    Bin total neu unterwegs mit WP, es macht Spass und ist cool.
    Hab gerade ein Plugin erstellt welches auch einwandfrei funktioniert, nur jetzt kommt es.....

    Wie kann man einen Cronjob für ein Plugin erstellen?
    Ich möchte gerne ein Plugin per Shortcode mit bestimmten Parametern als Cronjob starten.
    Einmal als normaler Wordpress-Cronjob und oder als real Cronjob.
    Geht das irgendwie?

    Danke
     
    #1 orangenetworxs, 26. Januar 2014
    Zuletzt bearbeitet: 26. Januar 2014
  2. g3h

    g3h Well-Known Member

    Registriert seit:
    25. Juni 2013
    Beiträge:
    661
    Zustimmungen:
    0
    Hallo,
    ja denke schon das das geht. Unterstüzt dein Hosting-Paket richtige Cronjobs ?
    Wäre es nicht sinnvoller per Cronjob direkt eine PHP-Dateien anzusprechen, welche die gewünschten Funktion ausführen. Ein Plugin wäre da denke ich unnötig. Da müsstest du ja noch eine extra PHP-Datei haben, die das Plugin in der Datenbank aktiviert und wieder deaktiviert.

    Also in deinem Shortcode könntest du mit dem Befehl <? exec("crontab crontab.txt"); ?> den Crontab laden, welcher dann eine PHP-Datei lädt, die die Funktionen deines Plugins ausführt, ohne das du dazu ein Plugin brauchst.

    Wordpress-Cronjobs sind abhängig von Seitenaufrufen.
    Hier noch zwei links:
    http://bueltge.de/wordpress-cron-nutzen/1000/
    http://www.variomedia.de/faq/Wie-richte-ich-einen-Cronjob-ein/article/86

    MfG
     
  3. orangenetworxs

    Registriert seit:
    26. Januar 2014
    Beiträge:
    11
    Zustimmungen:
    0
    Hoi g2h: im Grunde hast Du ja recht.
    Aber dazu muss ich dann die php Datei ins root legen oder?
    Kann man dies nicht irgendwie über die wp-cron.php machen, damit kann nicht jeder die php Datei ausführen.
    Man kann ja dann die wp-cron.php per richtigen cronjob aufrufen oder?

    Thx und Gruss
     
  4. g3h

    g3h Well-Known Member

    Registriert seit:
    25. Juni 2013
    Beiträge:
    661
    Zustimmungen:
    0
    Ich glaube nicht das es was bringt die wp-cron.php einfach so auszuführen, da sind ja nur die Funktionen drinnen, die du brauchst um einen WP-Cronjob zu erstellen.
    Was genau willst du denn machen mit dem Cronjob, vielleicht reichen ja die Funktionen aus der wp-cron.php, wenn das ganze durch einen Besucher deiner Seite aufgerufen werden soll. Dann brauchst du ja nur die entsprechende funktion in deinem Shortcode aufzurufen ( http://codex.wordpress.org/Function_Reference/wp_schedule_event ).
     
    #4 g3h, 27. Januar 2014
    Zuletzt bearbeitet: 27. Januar 2014
  5. orangenetworxs

    Registriert seit:
    26. Januar 2014
    Beiträge:
    11
    Zustimmungen:
    0
    Also es geht darum das die Screenshots, welche ich mit Hilfe eines externen Dienstes automatisch erstelle, in meinem "WebLink" Bereich
    einmal am Tag erneuert werden oder überhaupt erstellt werden.
    Also ist es am besten wenn ich wohl eine seperate Datei erstelle, wo dann alle Links einmal durchlaufen werden. Wenn Cronjobs auf der Konsolenebene gemacht werden, was passiert dann aber mit der Anzeige? Ich weiss Blöde Frage....

    Gruss andreas
     
  6. r23

    r23 Well-Known Member

    Registriert seit:
    9. Dezember 2006
    Beiträge:
    7.348
    Zustimmungen:
    587
    Warum? Dein Plugin kann doch einfach auf eine GET-Variable reagieren

    http://www.exmampl.org/wordpress/index.php?ichbineinsicherheitstocken=sdgf62830sdf6172930459

    und in deinem Script prüfst du nur, ob ichbineinsicherheitstocken den Wert sdgf62830sdf6172930459
    hat.

    http://www.cronjob.de kann ich empfehlen, wenn du sicher sein willst...

    cu

    ralf
     
  7. g3h

    g3h Well-Known Member

    Registriert seit:
    25. Juni 2013
    Beiträge:
    661
    Zustimmungen:
    0
    Stimmt das macht das ganze natürlich unkomplizierter.


    MfG
     
  8. orangenetworxs

    Registriert seit:
    26. Januar 2014
    Beiträge:
    11
    Zustimmungen:
    0
    okay das hört sich gut an,
    nur eine Frage wie geht das?

    Ja ich meine nicht in der Datei sondern das WP mitbekommt das es ein Sicherheitstoken ist oder
    geht das automatisch mit dem ?ichbineinsicherheitstoken <-- klar nur ein Beispiel


    Den Tooken kann man doch bestimmt automatisch erstellen und dann einfach in eine seperaten function kontrollieren oder?


    Gruss und danke
     
  9. orangenetworxs

    Registriert seit:
    26. Januar 2014
    Beiträge:
    11
    Zustimmungen:
    0
    Und hat keiner eine Idee dazu?

    Schade ..
     
  10. g3h

    g3h Well-Known Member

    Registriert seit:
    25. Juni 2013
    Beiträge:
    661
    Zustimmungen:
    0
    Das mit dem Token ist mir auch nicht ganz klar, aber du kannst beim Aufruf von Cronjobs Variablen mitgeben, von denen du eine als Bedingung benutzten kannst, damit die PHP Datei überhaupt ausgeführt wird und so nicht von jedem ausgeführt werden kann. Über die Konsole sollte das so gehen:

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Im Skript selbst kannst du dann mit $argv[1] ( = "some key") und $argv[2] (= "some other value") auf die mitgegebenen Argumente zugreifen.
    Und dann natürlich den Key aus $argv[1] in einer if-Bedingung benutzen, um bei Übereinstimmung mit dem in PHP-Datei festgelegten Key, das Script zu starten.

    Wie sicher das ist weiß ich aber nicht, vielleicht ist der key so auch leicht abzugreifen.
    Es gibt noch die möglichkeit mit -H Argumente zu verbergen, vielleicht ist das besser.
    Aber alles nur Vermutungen...

    Hier sind die weiteren Befehle erklärt http://www.php.net/manual/de/features.commandline.options.php

    Es gibt auch noch die möglichkeit die Scripte in einen Ordner zu legen und per .htaccess zu schützen, so wie es hier beschrieben wird: https://stackoverflow.com/questions/13114466/can-i-protect-my-cron-scripts-from-remote-users
     
    #10 g3h, 29. Januar 2014
    Zuletzt bearbeitet: 29. Januar 2014
  11. r23

    r23 Well-Known Member

    Registriert seit:
    9. Dezember 2006
    Beiträge:
    7.348
    Zustimmungen:
    587
    Ich dachte du schreibst das Plugin..

    ein Tocken erzeugt man mit rand() in php

    zum Beispiel

    wie du diesen verwaltest ist dir überlassen. Du kannst auch einen festen Wert dir selber einfallen lassen und nur prüfen, ob der Job schon einmal in der gewünschten Zeit ausgeführt wurde.

    Und eine $_GET- Variable ist in einem PHP Script *immer* vorhanden.

    Bei Wordpress ist dies etwas komplizierter

    http://codex.wordpress.org/Custom_Queries

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Viel Erfolg beim Basteln

    Ralf
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden