Zeitplan cron funktioniert nicht

Ich versuche einen Cronjob einzurichten. Es scheint, als ob es die le_schedule function, aber nicht die le_do_this function le_do_this . Ich habe auch einige Cronjob-Plugins ausprobiert, einige sagen, es läuft und einige sagen, es scheitert.

In diesem Fall versucht es, eine Datei zu erhalten und zu speichern, tut es aber nicht. Warum funktioniert das nicht?

 add_action( 'wp', 'le_schedule' ); add_action( 'le_event', 'le_do_this' ); function le_schedule() { if ( ! wp_next_scheduled( 'le_event' ) ) { wp_schedule_event( time(), 'daily', 'le_event'); } } function le_do_this() { $response = wp_remote_get('http://www.example.com/file.txt'); if( ! is_wp_error( $response ) ) { $body = wp_remote_retrieve_body($response); if( ! empty( $body ) ) { $put = get_template_directory() . '/cache/cache.txt'; file_put_contents( $put, $body ); } } } wp_clear_scheduled_hook( 'le_event' ); wp_clear_scheduled_hook( 'le_do_this' ); 

Ich lösche den Zeitplan, um bei jedem Seitenaufruf neu starten zu können.

Solutions Collecting From Web of "Zeitplan cron funktioniert nicht"

Sie sollten wp_clear_scheduled_hook bei jedem Laden der Seite aufrufen, weil Sie dann Ihren wp-cron shcedule immer mit Ihrem aktuellen Setup neu starten.

Zusätzlich dazu:

 wp_clear_scheduled_hook( 'le_do_this' ); 

Das macht keinen Unterschied, da le_do_this in Ihrem Setup kein Hook-Name ist.

Sie könnten zum Beispiel dieses Test-Plugin ausprobieren:

 < ?php /** * Plugin Name: Daily WP-Cron * Description: Call the my_daily_cron_script() function daily, if it exists. */ add_action( 'mydailyevent', function() { // Our script: if( function_exists( 'my_daily_cron_script' ) ) my_daily_cron_script(); }); register_activation_hook( __FILE__, function() { // Start the cron job: wp_schedule_event( time(), 'daily', 'mydailyevent' ); }); register_deactivation_hook( __FILE__, function() { // Stop the cron job: wp_clear_scheduled_hook( 'mydailyevent' ); }); 

Dort müssen Sie die function my_daily_cron_script() Ihren Bedürfnissen entsprechend definieren.

Es gibt eine Warnung im Codex auf wp_schedule_event :

Der Name eines auszuführenden Aktionshakens. Aus irgendeinem Grund scheint auf einigen Systemen ein Problem zu bestehen, bei dem der Hook keine Unterstriche oder Großbuchstaben enthalten darf.

mydailyevent lass uns einfach mydailyevent als unseren Hook-Namen verwenden, anstatt my_daily_event , nur für den Fall.