Причины отключения внутреннго крона: не всегда срабатывает, срабатывает многократно для посещаемых ресурсов, протухают запланированные публикации, задачи не успевают выполниться за отведенное им сервером время (обычно 30 секунд). Серверный же крон лишен всех этих недостатков.
Переходим от слов к делу
Первым шагом мы отключаем внутренний крон WordPress. Для этого в файле конфигурации wp-config.php
добавляем строку:
define( 'DISABLE_WP_CRON', true );
Затем создаём задачу для серверного крона. В директорию /etc/cron.d/
добавляем файл wp-cron
с таким содержимым:
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # WordPress Cron Task: */15 * * * * $USER wget -O - -q -t 1 "https://www.kobzarev.com/wp-cron.php?doing_wp_cron=1" > /dev/null 2>&1 # Или через Curl */15 * * * * $USER curl https://www.kobzarev.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1 # Можно также напрямую через PHP: */15 * * * * $USER php /home/$USER/public_html/wp-cron.php > /dev/null 2>&1
Теперь задачи WordPress будет запускать серверный крон каждые 15 минут.
Источник: https://www.kobzarev.com/wordpress/otklyuchenie-vnutrennego-krona-wordpress/
А что делать, если на сайте установлены плагины, которым нужен крон 1 раз в минуту?
Если ли способ отключить впшный крон и заменить его серверным с нужным интервалом?