Как просматривать и управлять Cron-задачами в WordPress?

Cron – это технология, позволяющая управлять запуском выполнения задач по расписанию на сервере. WordPress имеет встроенную систему расписания, с помощью которой по расписанию выполняются такие задачи, как проверка обновлений, публикация запланированных записей и пр. Существует возможность просмотра и управления планировщиком из админ-части. Но для начала следует подробнее познакомиться с технологией.

Что такое Cron?

Cron представляет из себя специализированный термин, который используется для запуска команд в заранее определенное время или через конкретные интервалы. Примерами таких команд могут служить удаление старых комментариев, резервное копирование и пр. задачи по обслуживанию WordPress-сайта.

Просмотр и управление системой WordPress Cron

“Движок” не имеет каких-либо инструментов для удобного управления расписанием задач. Для этого воспользуемся сторонним решением – плагином WP Control.

Плагин WP Control

Во-первых, плагин нужно установить и активировать. После этого в админ-панели необходимо перейти Инструменты -> Cron Events.

Управление запланированными задачами в плагине WP Control

На странице Вы увидите список всех Cron-событий, назначенных на выполнение на сайте. В первом столбце таблицы указано название хука, который собственно и запускает планировщик. По этим названиям Вы сможете интуитивно догадаться, что именно выполняет то или иное событие. Видно, что большинство WordPress-хуков начинаются с префикса “wp_”, например, wp_version_check или wp_scheduled_auto_draft_delete. Установленные темы или плагины могут использовать свои префиксы, как, например, woocommerce_scheduled_sales или woocommerce_geoip_updater. В столбце Next Run указаны дата, время и интервалы следующего запуска задачи. Последний столбец позволит Вам редактировать, запускать и удалять расписание.

Следует отметить, что нужно быть предельно осторожными со стандартными событиями WordPress, так как их какое-либо изменение может повлечь за собой сбои в работе сайта.

Редактирование расписания заданий

Если напротив какой-либо задачи нажать кнопку Edit, то перед Вами откроется вкладка Modify Cron Event.

Изменение расписания в плагине WP Control

Тут можно изменить частоту выполнения события. Для сохранения изменений необходимо нажать кнопку Modify Cron Event.

Добавление нового события

Плагин, кроме редактирования, также позволяет добавить новое событие. Для этого следует перейти на вкладку Add Cron Event.

Добавление события в плагине WP Control

Во-первых, необходимо указать название хука для события (поле Hook Name). Заметим, что название не должно содержать каких-либо спецсимволов или пробелов. Если добавляемая функция имеет какие-либо параметры, то их следует указать в поле Arguments (optional). Далее нужно указать время запуска задачи (Next Run). В конце следует выбрать расписание выполнения события (Recurrence). Доступны следующие значения: каждый час, два раза в день, раз в день, раз в неделю и др. Для сохранения настроек необходимо нажать кнопку Add Cron Event, после чего событие появится в списке. Однако ничего работать не будет, так как не было указано, что именно нужно делать. Для этого следует добавить в файл functions.php свой хук и функцию, которая будет выполняться при выполнении задачи.

if ( ! wp_next_scheduled( 'wpschool_custom_cron' ) ) {
    wp_schedule_event( time(), 'hourly', 'my_task_hook' );
}

add_action( 'wpschool_custom_cron', 'wpschool_custom_cron_func' );

function wpschool_custom_cron_func() {
    wp_mail( 'user@site.ru', 'Автоматическое письмо', 'Текст автоматического письма' );
}

Функция в примере отправляет простое письмо на указанный адрес.

Нажмите, пожалуйста, на одну из кнопок, чтобы узнать понравилась статья или нет.

Если Вам понравилась статья — поделитесь с друзьями
Михаил Петров
Привет! Меня зовут Михаил Петров. Я копирайтер и занимаюсь этим с 2013 года. Скрупулезность и ответственность - моя фишка! Не могу делать как попало и добиваюсь, чтоб заказчик сказал минимум “неплохо”. За все время своей работы пришлось написать и отредактировать немало разной “текстовухи”, включая SEO-тексты, отзывы и прочую чушь. На сегодняшний день специализируюсь на написании информационных статей и руководств технического направления. Вижу смысл и светлое будущее в текстах для людей, а не для машин.
Задать вопрос