Как создать и изменить задание WordPress Cron

Rifat Плагины WordPress Jul 4, 2023

Cron — это утилита, обычно используемая в системах Unix/Linux для планирования выполнения команд или сценариев на веб-сервере, работающем в фоновом режиме. Задание cron относится к конкретной задаче, запланированной для запуска в заранее определенное фиксированное время, даты или интервалы. Такие задачи часто повторяются и автоматизированы для повышения эффективности. В случае WordPress функция WP-Cron используется для эмуляции системного cron.

Экземпляры заданий WordPress cron могут включать планирование публикации поста или запуск плагина резервного копирования по заранее определенному расписанию. Целью этого обсуждения является предоставление исчерпывающего руководства по легкому созданию, изменению и выполнению задания WordPress cron.

Как настроить задание Cron в WordPress

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

Чтобы запланировать события WP-Cron, необходимо создать собственные хуки. Мы настоятельно рекомендуем обратиться к официальному справочнику плагинов WordPress, который предлагает отличное руководство по планированию событий WP-Cron. Если вы ищете альтернативный метод настройки системного cron в WordPress, мы предлагаем обратиться к статье Тома Макфарлина ’ об определении задания WordPress cron. Кроме того, для тех, кто может быть менее опытным, мы рассмотрим простой способ использования WP-Cron в сочетании с популярным бесплатным плагином WP Cr ontrol . Этот плагин позволяет вам отслеживать и управлять действиями в системе WP-Cron.

Создавайте потрясающие сайты

С лучшим бесплатным конструктором страниц Elementor

Начать сейчас

WP Crontrol может похвастаться впечатляющим количеством активных установок, превышающим 200 000, в сочетании с исключительным рейтингом 4,5 из 5. В сообществе WordPress этот плагин вызвал значительное восхищение.

Этот плагин предлагает замечательную полезность, предоставляя всесторонний обзор заданий CRON, которые запланированы для запуска. Это отличный начальный шаг к пониманию лежащих в основе процессов и определению их рабочего состояния. Такие заслуги привели к единодушной оценке 5 звезд. Кроме того, возможность создавать новые задания cron и инициировать выполнение существующих еще больше повышает его ценность, гарантируя дополнительный 5-звездочный рейтинг, как подтвердил Джош, создатель Caldera Forms.

Чтобы приобрести этот плагин, его можно либо загрузить непосредственно из репозитория WordPress, либо найти его на панели инструментов WordPress в разделе «Добавить новые» плагины. Заслуживающие внимания особенности WP Control включают в себя:

  • Полное отображение всех событий cron, включая их соответствующие аргументы, шаблоны повторения и предстоящее время выполнения.
  • Возможность изменять, удалять или немедленно инициировать любые события cron.
  • Положение о введении новых событий cron.
  • Возможность добавлять, изменять и удалять пользовательские расписания cron.

Расписания WP-Cron

После активации пользователь получает возможность изменять расписания заданий WordPress Cron, открыв раздел «Расписания Cron» в настройках своей панели управления WordPress. Важно отметить, что плагин вводит дополнительное расписание еженедельной частоты по умолчанию. Кроме того, у пользователей есть возможность включить дополнительные расписания, измеряемые в секундах, например, 21600 секунд для выполнения задач каждые 6 часов.

Эти интервалы могут быть включены в код с помощью фильтра, примером которого является следующая строка кода:

add_filter( 'cron_schedules', 'example_add_cron_interval' );

function example_add_cron_interval( $schedules ) {
 $schedules['five_seconds'] = array(
 'interval' => 5,
 'display' => esc_html__( 'Every Five Seconds' ),
 );

return $schedules;
 }

События WP-Cron


Впоследствии плагин также можно использовать для просмотра существующих запланированных заданий WordPress Cron. Чтобы получить доступ к этой функции, перейдите в раздел «События Cron» на вкладке «Инструменты». Названия многочисленных действий легко идентифицировать, так как ожидается, что они соответствуют определенным частям имени плагина, например, «woocoomerce_cleanup_sessions» или «gravityforms_cron».


Чтобы инициировать немедленное выполнение события Cron, можно просто щелкнуть параметр «Выполнить сейчас» рядом с соответствующим именем действия. Эта функциональность оказывается полезной в процессе устранения неполадок, особенно когда возникает необходимость запускать событие Cron несколько раз.

Добавить событие Cron

Кроме того, у вас есть возможность включить события Cron в вашу настройку. В этом случае мы продемонстрируем процесс добавления задания WordPress Cron специально для плагина Disqus. Многие люди могут захотеть выполнить эту задачу, чтобы изменить частоту синхронизации или решить проблемы, связанные с синхронизацией комментариев. Документация, предоставляемая каждым сторонним разработчиком подключаемого модуля, должна содержать указанное имя для их события cron или, другими словами, имя действия. В случае подключаемого модуля Disqus используется имя действия «dsq_sync_forum».

Если вы собираетесь создать событие cron с нуля, вам потребуется соответствующий хук действия в вашем коде, например файл functions.php. Следующий пример, любезно предоставленный WP-Crontrol, иллюстрирует эту концепцию:

add_action( 'my_hookname', 'my_function' );

Следующая функция, которую вы собираетесь написать, —

function my_function() {
    wp_mail( '[email protected]', 'WP Crontrol', 'WP Crontrol rocks!' );
}


В случае Disqus наш начальный шаг включает в себя включение свежего расписания cron продолжительностью 600 секунд (эквивалентно 10 минутам). Затем мы переходим к доступу к функции «Добавить событие Cron», где мы вводим «dsq_sync_forum» в качестве назначенного имени действия. Затем мы выбираем последующее время выполнения и выбираем 10-минутный интервал, который мы недавно установили. Наконец, мы завершаем процесс, выбрав «Добавить событие Cron». Следовательно, эта процедура обеспечивает автоматическое повторение каждые 10 минут, облегчая ручную синхронизацию комментариев Disqus с нашей базой данных WordPress.

По сути, использование этой функции является простым и удобным для пользователя.

Изменить событие кукурузы

Кроме того, можно изменить уже существующие события Cron, выбрав опцию «Редактировать» рядом с именем действия. Следовательно, вы получаете возможность изменить имя действия, аргументы, последующее выполнение и запланированное повторение. Важно проявлять осторожность при внесении таких изменений, так как многие плагины зависят от своих заданий Cron для правильной работы.

Добавить задание Cron с помощью cPanel

Если у вас есть доступ к учетной записи cPanel, предоставленной вашим веб-хостом, вы можете использовать панель управления для установки заданий cron. Для этого войдите в свою учетную запись cPanel и перейдите в раздел «Дополнительно», а затем выберите «Задания Cron».

Страница настроек заданий Cron предлагает варианты настройки уведомлений о заданиях cron и создания новых. Чтобы включить задание cron, перейдите к разделу «Добавить новое задание Cron», прокрутив вниз.

В этом разделе у вас будет возможность настроить частоту команды.

Меню «Общие настройки» включает в себя различные предварительно настроенные варианты, начиная с частоты от одного раза в минуту до одного раза в год. Пользователи могут выбрать любую из этих опций или в качестве альтернативы настроить поля ниже, введя персонализированное значение.

После настройки частоты задания cron вы можете перейти к вводу команды, которую он будет выполнять, в указанном поле «Команда». Чтобы сохранить изменения, сохраните задание cron, выбрав опцию «Добавить новое задание Cron». Следовательно, вновь созданное задание cron будет отображаться среди текущих заданий Cron, перечисленных в нижней части страницы.

Отключить WP-Крон

В некоторых случаях использование функции WP-Cron может вызвать сложности для вашего сайта. WP-Cron — это смоделированная версия задания cron, в котором отсутствует непрерывная работа, обычно связанная с такими заданиями. Вместо этого WordPress выполняет скрипт wp-cron.php каждый раз при загрузке страницы.

Такой подход может создать проблемы для веб-сайтов с высоким трафиком, поскольку для выполнения wp-cron.php при каждой загрузке страницы необходимо выделять значительные ресурсы. Если скрипт не запускается из-за загрузки страницы, запланированные команды также могут не выполняться, так как wp-cron.php активно не отслеживает интервалы.

Если у вас возникнут проблемы с WP-Cron, у вас есть возможность отключить эту функцию, включив следующий код в файл WordPress wp-config.php:

define('DISABLE_WP_CRON', true);

Как только изменения будут сохранены в файле, процесс будет завершен. Тем не менее, если вы решите отключить WP-Cron, вам нужно будет установить альтернативное решение, используя любой из методов, описанных в предыдущих разделах этого руководства.

Подведение итогов

Повысьте эффективность и сократите расходы, одновременно оптимизируя функциональность веб-сайта, используя интеграции корпоративного уровня стоимостью от 275 долларов США, которые легко интегрируются в каждый план Managed WordPress. Эти интеграции включают в себя высокопроизводительную сеть доставки контента (CDN), надежную защиту от распределенного отказа в обслуживании (DDoS), комплексные меры защиты от вредоносных программ и попыток взлома, эффективные механизмы граничного кэширования и самые быстрые процессоры Google. Начните свое путешествие без длительных договорных обязательств, воспользуйтесь управляемой миграцией и воспользуйтесь 30-дневной гарантией возврата денег.

Divi WordPress Theme