WordPress Cron 관련 문제를 어떻게 디버깅 할 수 있습니까? 사용자가 귀하의 사이트를 방문하면 트리거 될 것이라고 생각하지만 작업이 "비동기 적으로"실행되므로 오류가 표시되지 않습니다. 그렇다면 어떻게 오류를 디버깅 할 수 있습니까?
나는 사용한다 wp schedule event
WordPress Cron 관련 문제를 어떻게 디버깅 할 수 있습니까? 사용자가 귀하의 사이트를 방문하면 트리거 될 것이라고 생각하지만 작업이 "비동기 적으로"실행되므로 오류가 표시되지 않습니다. 그렇다면 어떻게 오류를 디버깅 할 수 있습니까?
나는 사용한다 wp schedule event
답변:
다음을 호출하여 WP cron을 수동으로 실행할 수 있습니다. http://example.com/wp-cron.php?doing_wp_cron
디버깅하는 동안 자동 크론을 실행하지 않으려면 /wp-config.php
파일 에 이것을 추가 하십시오.
define('DISABLE_WP_CRON', true);
개발 환경에 있고 디버그 정보를 출력하려면 수동으로 호출하면 디버그 출력이 표시됩니다.
또는 PHP의 내장 error_log 함수를 사용하여 디버깅을 위해 메시지 문자열을 오류 로그에 기록 할 수 있습니다. Rarst 에서 언급했듯이 이것을 WP_DEBUG settings 과 함께 사용해야합니다.
?doing_cron
매개 변수 와 함께 힌트를 주셔서 감사합니다 .
?doing_wp_cron
대신 해야한다고 생각합니다 ?doing_cron
.
?doing_wp_cron
매개 변수는 필수? EasyCron의 수동 설정 튜토리얼을 참조하십시오 .
Cron-View 플러그인을 사용할 수 있습니다 . 거기에서 직업이 a) 등록되어 있는지, b) 다음 마감 시간이 무엇인지 확인할 수 있습니다.
또한 이벤트에 더 낮은 스케줄 타이머를 추가하고 (예 : 2 분마다) 로컬 시스템에서 메소드를 더 자주 테스트 할 수 있습니다. 새로운 스케줄 시간을 등록하려면 'cron_schedules'필터 후크를 사용하십시오. 예를 들면 다음과 같습니다.
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');
당신은 (그리고 아마도 어떤 경우, 크론 또는 안) 수 구성 PHP 오류 로그 모든 오류를 촬영합니다.
조치를 작성하고 내부에서 Cron 조치를 실행하여 수동으로 디버그 할 수 있습니다. 이처럼 :
add_action( 'init', function() {
if ( ! isset( $_GET['the_cron_test'] ) ) {
return;
}
error_reporting( 1 );
do_action( 'this_is_cron_event_hook' );
die();
} );
그리고 귀하의 웹 사이트 주소로 이동하면 : http://example.com?the_cron_test
cron 태스크의 오류가 표시됩니다.
그러나 수동으로 수행하는 것은 의미가 없습니다. 이를 위해 Advanced Cron Manager PRO 플러그인을 사용할 수 있으며 로그 및 기타 통계도 저장합니다.