Как запустить задание WordPress cron с помощью расписания? - PullRequest
1 голос
/ 01 мая 2020

Мне нужно запустить пользовательское задание cron с помощью функции wp. Я пытался выполнить этот ответ , но приведенный ниже фрагмент не выполняется.

Мне нужно запускать wp_remote_get каждые 5 минут.

В функции. php I сделать:

$args = array(false);
function schedule_my_cron(){
    wp_schedule_event(time(), '5min', 'my_schedule_hook', $args);
}
if(!wp_next_scheduled('my_schedule_hook',$args)){
    add_action('init', 'schedule_my_cron');
}

function my_schedule_hook() {
  wp_remote_get('https://example.com/wp-content/themes/JikuHealth/scripts/covid-19_global_data.php');
}

wp документы здесь но я все еще не понимаю, как это сделать.

1 Ответ

1 голос
/ 01 мая 2020

Поддерживаемые значения по умолчанию повторяются: «ежечасно», «дважды», «ежедневно» и «еженедельно». Вы используете «5 минут», но вы уже создали его? Это пример:

function custom_cron_schedule( $schedules ) {
    $schedules['5min'] = array('interval' => 5 * MINUTE_IN_SECONDS, 'display' => 'Every 5 minutes');
    return $schedules;
}
add_filter( 'cron_schedules', 'custom_cron_schedule' );

РЕДАКТИРОВАТЬ

Полный код для вашего примера

// Your custom recurrences: '5min' , '20min'
    function custom_cron_schedule( $schedules ) {
       if(!isset($schedules['5min'])){
         $schedules['5min'] = array(
           'interval' => 5 * MINUTE_IN_SECONDS,
           'display' => __('Once every 5 minutes'));
       }
       if(!isset($schedules['20min'])){
         $schedules['20min'] = array(
           'interval' => 20 * MINUTE_IN_SECONDS,
           'display' => __('Once every 20 minutes'));
       }
       return $schedules;
    }
    add_filter( 'cron_schedules', 'custom_cron_schedule' );

// Your function
  function my_schedule_hook() {
    //do your stuff
    wp_remote_get('https://example.com/wp-content/themes/JikuHealth/scripts/covid-19_global_data.php');
  }

// Schedule Cron Job Event
  if (!wp_next_scheduled('name_your_cron')) {
      //You can now use '5min', '20min' or any of the default here
      wp_schedule_event( time(), '5min', 'name_your_cron' );
  }
  add_action( 'name_your_cron', 'my_schedule_hook' ); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...