WP_GET_SCHEDULES() Function: Everything You Need to Know │ WordPress 2.1.0

WP_GET_SCHEDULES() │ WordPress 2.1.0

Функция wp_get_schedules() позволяет получить доступ к поддерживаемым расписаниям повторения событий.

Поддерживаемые расписания

По умолчанию в WordPress доступны следующие расписания:

  • hourly — каждый час
  • twicedaily — дважды в день
  • daily — каждый день
  • weekly — каждую неделю

Плагины могут добавлять свои собственные расписания, используя фильтр cron_schedules. Этот фильтр принимает массив, где ключом будет название расписания (например, monthly для ежемесячного расписания), а значением — массив с двумя элементами: interval и display.

  • interval — интервал в секундах, через который должно выполняться запланированное событие. Например, для hourly интервал равен HOUR_IN_SECONDS (60 * 60 = 3600 секунд).
  • display — строка, описывающая расписание. Например, для ключа monthly display будет выглядеть так: __('Ежемесячно').

Пример использования

Вы можете добавить свое расписание с помощью следующего кода:

add_filter('cron_schedules', 'add_monthly_schedule');

function add_monthly_schedule($schedules) {
    $schedules['monthly'] = array(
        'interval' => MONTH_IN_SECONDS,
        'display'  => __('Ежемесячно')
    );
    return $schedules;
}

Возвращаемое значение

Функция возвращает массив, в котором содержатся расписания крон, сгруппированные по названиям расписаний.

Как использовать

Чтобы получить список доступных расписаний, воспользуйтесь функцией:

$schedules = wp_get_schedules();
print_r($schedules);

Пример вывода

Вот пример того, какие данные может в��рнуть вышеуказанный код:

Array
(
    [hourly] => Array
        (
            [interval] => 3600
            [display] => Каждый час
        )

    [twicedaily] => Array
        (
            [interval] => 43200
            [display] => Дважды в день
        )

    [daily] => Array
        (
            [interval] => 86400
            [display] => Каждый день
        )

    [weekly] => Array
        (
            [interval] => 604800
            [display] => Каждую неделю
        )
)

Пример добавления нового интервала

Чтобы добавить новый интервал (например, раз в неделю) в WordPress, используйте фильтр cron_schedules, как показано ниже:

add_filter('cron_schedules', 'cron_add_weekly');

function cron_add_weekly($schedules) {
    $schedules['weekly'] = array(
        'interval' => WEEK_IN_SECONDS, // Время в секундах
        'display' => __('Каждую неделю')
    );

    return $schedules;
}

Изменения

  • С версии 2.1.0 — функция была введена.
  • С версии 5.4.0 — добавлено расписание 'weekly'.

Код функции

Вот пример кода, который отвечает за функциональность wp_get_schedules():

function wp_get_schedules() {
    $schedules = array(
        'hourly'     => array(
            'interval' => HOUR_IN_SECONDS,
            'display'  => __('Каждый час'),
        ),
        'twicedaily' => array(
            'interval' => 12 * HOUR_IN_SECONDS,
            'display'  => __('Дважды в день'),
        ),
        'daily'      => array(
            'interval' => DAY_IN_SECONDS,
            'display'  => __('Каждый день'),
        ),
        'weekly'     => array(
            'interval' => WEEK_IN_SECONDS,
            'display'  => __('Каждую неделю'),
        ),
    );

    return array_merge(apply_filters('cron_schedules', array()), $schedules);
}

Заключение

Функция wp_get_schedules() — это удобный инструмент для работы с крон-задачами в WordPress. Используя её, вы можете управлять расписаниями выполнения событий и добавлять свои собственные опции, что делает работу с задачами более гибкой и простой.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *