Intereting Posts
установить термины в категорию и подкатегорию прохождение разметки считало атрибут короткого кода Как правильно получить все сообщения за последний год с помощью функции query_posts? Должен ли я дезинфицировать адрес электронной почты, прежде чем передавать его функции is_email ()? Ошибка возврата по ссылке на пользовательский термин 404 Сделайте резюме, основанное на разделах в сообщении Возврат к результатам поиска ajax со страницы Почта не будет отправляться в формате HTML Как я могу получить электронную почту пользователей (и дополнительные данные) от остального API? Проблема с is_page & wp_redirect Пользовательские мета-поля в ленте RSS Обнаружение, если плагин был включен в определенную страницу Запрос игнорирует параметр «исключить»? При каких обстоятельствах файл .maintenance не удаляется? Пользовательский запрос для поиска по категориям

Как настроить расписание моего мероприятия еженедельно с помощью wp_schedule_event ()

Я хочу запланировать событие, которое происходит каждую пятницу в 11:30, и я не уверен в некоторых вещах. Я ежедневно планирую мероприятие ежедневно в 11:30 из следующего кода:

function my_schedule() { $hour = 11; $minute = 30; $dayofweek = 'today'; $frequency = 'daily'; if ( !wp_next_scheduled( 'my_event' ) ) { $scheduleTime = strtotime($dayofweek." $hour:$minute am America/Montreal"); wp_schedule_event($scheduleTime, $frequency, 'my_event' ); } } 

Мой вопрос: если я изменю $dayofweek на friday , мне нужно изменить $frequency на weekly так как $scheduleTime всегда будет по пятницам? Увеличивает ли $frequency больше, если у меня есть $scheduleTime , установленный в пятницу каждой недели? Как точно $frequency влияет на $scheduleTime для wp_schedule_event() ?

Solutions Collecting From Web of "Как настроить расписание моего мероприятия еженедельно с помощью wp_schedule_event ()"

Согласно документам для этой функции, вы не можете настроить недельное событие по умолчанию.

 wp_schedule_event(int $timestamp, string $recurrence, string $hook, $args = array() ); 

Значение $recurrence должно быть одним из следующих:

  • «Ежечасно»
  • "два раза в день"
  • "ежедневно"

Вам нужно будет проверить сегодняшнюю дату внутри вашей функции обратного вызова my_event . Что-то вроде:

 function my_event() { # date('l') returns the formatted full day of the week if ( date ('l') !== 'Friday' ) { return; } # do my_event things! } 

Редактировать:

Если вы хотите добавить недельное расписание cron, вы можете сделать это, добавив фильтр к крюку фильтра cron_schedules . Вы можете увидеть пример этого здесь , это будет работать на что-то вроде этого:

 function 246184_weekly_cron_schedule( $schedules ) { $schedules[ 'weekly' ] = array( 'interval' => 60 * 60 * 24 * 7, # 604,800, seconds in a week 'display' => __( 'Weekly' ) ); return $schedules; } add_filter( 'cron_schedules', '246184_weekly_cron_schedule' );