So debuggen Sie WordPress "Cron" wp_schedule_event


Antworten:


27

Sie können WP cron manuell ausführen, indem Sie Folgendes aufrufen: http://example.com/wp-cron.php?doing_wp_cron

Wenn Sie nicht möchten, dass der automatische Cron während des Debuggens ausgeführt wird, fügen Sie Folgendes zu Ihrer /wp-config.phpDatei hinzu:

define('DISABLE_WP_CRON', true);

Wenn Sie sich in einer Entwicklungsumgebung befinden und Debug-Informationen ausgeben möchten, wird bei einem manuellen Aufruf Ihre Debug-Ausgabe angezeigt.

Alternativ können Sie die in PHP integrierte error_log- Funktion verwenden, um Nachrichtenzeichenfolgen zum Debuggen im Fehlerprotokoll zu protokollieren. Sie müssen dies in Verbindung mit WP_DEBUG-Einstellungen verwenden , wie von Rarst erwähnt.


Vielen Dank für den Hinweis mit dem ?doing_cronParameter.
rofflox

3
Ich glaube, es sollte ?doing_wp_cronstattdessen sein ?doing_cron.
Liviucmg

@liviucmg Ja, du hast recht. Ich habe den Tweak gemacht.
Simon East

1
Ist der ?doing_wp_cronParameter erforderlich? Weitere Informationen finden Sie in der Anleitung zur Einrichtung von EasyCron .
AlecRust

@gabrielk Ist der Parameter? doing_cron erforderlich? Was heißt das?
Jedi

6

Sie können das Plugin Cron-View verwenden . Dort können Sie sehen, ob Ihr Job a) registriert ist und b) wann der nächste fällige Zeitpunkt ist.

Zusätzlich können Sie Ihrer Veranstaltung einen niedrigeren Zeitplan hinzufügen (z. B. alle 2 Minuten) und Ihre Methode häufiger auf einem lokalen System testen. Verwenden Sie den Filter-Hook 'cron_schedules', um neue Zeitpläne zu registrieren. Beispielsweise:

function my_additional_schedules($schedules) {
    // interval in seconds
    $schedules['every2min'] = array('interval' => 2*60, 'display' => 'Every two minutes');
    return $schedules;
}
add_filter('cron_schedules', 'my_additional_schedules');


3

Sie können manuell debuggen, indem Sie eine Aktion erstellen und die darin enthaltene Cron-Aktion ausführen. So was:

add_action( 'init', function() {

    if ( ! isset( $_GET['the_cron_test'] ) ) {
        return;
    }

    error_reporting( 1 );

    do_action( 'this_is_cron_event_hook' );

    die();

} );

Und indem Sie zur Adresse Ihrer Website gehen: http://example.com?the_cron_test

Dies sollte Ihnen etwaige Fehler bei der Cron-Aufgabe anzeigen.

Aber es macht keinen Sinn, es manuell zu machen. Sie können das Advanced Cron Manager PRO- Plugin verwenden, das dies für Sie erledigt und auch das Protokoll und andere Statistiken speichert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.