Intereting Posts
Фильтр lostpassword_redirect не используется Необходимо вручную добавить нескольких пользователей WP с одинаковым адресом электронной почты (без уважительной причины) Показать сообщения с пустым пользовательским полем Пользовательский тип сообщения, сохранение нескольких флажков Теги в WordPress 3.2 В чем разница между get_home_path () и ABSPATH? Что такое theme-editor.tmp? Wpdb запрос для комментариев meta для текущего сообщения У администратора не хватает прав администратора после взлома и не может восстановить Удалить корневую косую черту сайта Создать пустой test.php Есть ли способ импортировать папку в HTML-файлы в блог? Добавление «Интересных тегов» и «Игнорируемые теги», такие как StackOverflow.com в блоге WordPress? восстановить db после плохой резервной копии Постоянная ссылка / Проблема с разбивкой на страницы: базовое имя категории совпадает с именем страницы

Как настроить расписание моего мероприятия еженедельно с помощью 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' );