WordPress: wp-cron funktioniert nicht und gibt keinen Fehler im Protokoll aus

Lesezeit: 3 Minuten

Benutzer-Avatar
DaFois

Dies ist ein wp-cron, den ich in der Datei function.php definiert habe, aber ich erhalte kein Ergebnis im Fehlerprotokoll, das Ereignis ist in der Cron-Liste, aber wenn ich es starte, passiert nichts. Ich habe define('WP_DEBUG', true);
Und Fehlerprotokoll auf allen Ebenen in php.ini aktiviert

Weiß jemand wo ich falsch mache?

function cron_daily_whatever() {
  if (!wp_next_scheduled('check_daily_event')) {
    wp_schedule_event(time(),'daily','check_daily_event');
  }
}

function my_do_this_daily() {
    error_log('check');
}

add_action('wp','cron_daily_whatever');
add_action('check_daily_event','my_do_this_daily');

LÖSUNG
Ich habe den Ausschnitt verwendet

 file_put_contents(WP_CONTENT_DIR . '/my-debug.txt', "Response: ".$res."\n", FILE_APPEND);

um es zu debuggen. Und es funktioniert jetzt.

Scheint, dass Sie den Cron auf Seitenebene / Themenebene haben / einstellen?

Wenn Sie auf Plugin-Ebene einstellen.

add_action( 'my_hourly_event',  'update_db_hourly' );

public static function activate() {
    wp_schedule_event( time(), 'hourly', 'my_hourly_event' );
}

public static function deactivate() {
    wp_clear_scheduled_hook('my_hourly_event');
}

public function update_db_hourly() {

    // 1. Check for a new file
    // 2. If it exists, read it, upload it, delete it
    // 3. Otherwise, do nothing

}

Ref: https://tommcfarlin.com/wordpress-cron-jobs/

Hinweis: Wenn error_log nicht funktioniert, kann es daran liegen, dass das Flag WP_DEBUG_DISPLAY=false nicht richtig gesetzt ist. Protokollieren Sie besser eine benutzerdefinierte Protokollierung mit dem folgenden Snippet.

file_put_contents(WP_CONTENT_DIR . '/my-debug.txt', "Response **".$res."**", FILE_APPEND);

Diese Datei wird im Ordner wp-content erstellt.

Benutzer-Avatar
Benutzer3080408

Als standardmäßiges WP_DEBUG-Protokoll in wp-content solltest du (‘WP_DEBUG_LOG’,TRUE) definieren; auch. Dann müssen Sie Ihr geplantes Ereignis löschen (und neu einstellen), um heute zu testen, ob es bereits einmal ausgeführt wurde. Sehen https://codex.wordpress.org/Function_Reference/wp_clear_scheduled_hook dafür.

  • Ich habe beide aktiv und es gibt keine Fehler. Ich muss wissen, ob der Aufruf zum Registrieren des Cron korrekt ist …

    – DaFois

    31. Dezember 2016 um 15:08 Uhr

  • Deine Methoden sehen für mich ok aus. Besuchen Sie die Site, um den Cron abzufeuern? Können Sie Fehler an anderer Stelle in Ihrem Code protokollieren?

    – Benutzer3080408

    1. Januar 2017 um 15:53 ​​Uhr

  • Ja, ich habe es in der function.php und ich kann das Ereignis zwischen den anderen Ereignissen in der wp-cron-Zeitplantabelle sehen … Das Ereignis wird ausgelöst, aber nichts passiert, daher denke ich, dass es keine Verbindung zwischen dem täglichen Ereignis und dem gibt Funktion, die ich zu starten versuche … : / Ich kann den Grund nicht verstehen …

    – DaFois

    2. Januar 2017 um 0:01 Uhr

  • OK. Zunächst möchte ich Ihre Aussage klarstellen. Ich glaube nicht, dass Sie „Das Ereignis feuert“ kennen. Persönlich würde ich auf diese Weise debuggen: Fügen Sie eine Zeile hinzu, um in das error_log in einer Funktion in Ihrer function.php-Datei zu schreiben, von der Sie sicher wissen, dass sie aufgerufen wird, und stellen Sie sicher, dass Ihre Fehlerprotokollierung funktioniert. Wenn dies der Fall ist, löschen Sie den geplanten Hook und setzen Sie ihn zurück. Besuchen Sie dann Ihre Website, um den Cron auszulösen und das Protokoll zu überprüfen.

    – Benutzer3080408

    2. Januar 2017 um 14:17 Uhr

1225910cookie-checkWordPress: wp-cron funktioniert nicht und gibt keinen Fehler im Protokoll aus

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy