Cómo depurar WordPress "Cron" wp_schedule_event

Respuestas:

27

Puede ejecutar WP cron manualmente llamando a: http://example.com/wp-cron.php?doing_wp_cron

Si no desea que se ejecute el cron automático mientras está depurando, agregue esto a su /wp-config.phparchivo:

define('DISABLE_WP_CRON', true);

Si se encuentra en un entorno de desarrollo y desea generar información de depuración, llamarla manualmente de esa manera le mostrará su salida de depuración.

Alternativamente, puede usar la función incorporada error_log de PHP para registrar cadenas de mensajes en el registro de errores para la depuración. Debería usar esto junto con la configuración WP_DEBUG , como lo menciona Rarst.

gabrielk
fuente
Gracias por la pista con el ?doing_cronparámetro.
rofflox
3
Creo que debería ser en ?doing_wp_cronlugar de ?doing_cron.
liviucmg
@liviucmg Sí, tienes razón. He hecho el ajuste.
Simon East
1
¿Se ?doing_wp_cronrequiere el parámetro? Consulte el tutorial de configuración manual de EasyCron .
AlecRust
@gabrielk ¿Se requiere el parámetro? doing_cron? ¿Qué significa eso?
jedi
6

Puede usar el complemento Cron-View . Allí puede ver si su trabajo está a) registrado yb) cuál es el próximo plazo.

Además, puede agregar un temporizador de programación más bajo a su evento (por ejemplo, cada 2 minutos) y probar su método con mayor frecuencia en un sistema local. Use el gancho de filtro 'cron_schedules' para registrar nuevos horarios. Por ejemplo:

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');
rofflox
fuente
3

Puede depurar manualmente, creando una acción y ejecutando la acción Cron en su interior. Me gusta esto:

add_action( 'init', function() {

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

    error_reporting( 1 );

    do_action( 'this_is_cron_event_hook' );

    die();

} );

Y yendo a la dirección de su sitio web: http://example.com?the_cron_test

Esto debería mostrarle cualquier error con la tarea cron.

Pero no tiene ningún sentido hacerlo manualmente. Puede usar el complemento Advanced Cron Manager PRO que hace esto por usted y también guarda el registro y otras estadísticas.

WPMaster
fuente