Отключаем wp-cron в Wordpress
Постановка задачи
В CMS Wordpress есть встроенный планировщик (wp-cron.php). Планировщик вызывается каждый раз при доступе к любой из страниц сайта. При запуске он проверяет следует пришла ли пора выполнить те или иные действия (например проверка выхода новой версии, рассылки уведомлений и т.п.).
В том случае, если на сайте большой поток посетителей скрипт слишком часто отрабатывает впустую.
В том случае, если на сайте редкие посетители скрипт будет отрабатывать слишком редко.
В двух перечисленных случаях имеет смысл отключить автоматический запуск скрипта при каждом посещении сайта, и запускать скрипт с нужной нам периодичностью.
Решение
Для отключения wp-cron
в файле wp-config.php
добавляем строку:
define('DISABLE_WP_CRON', true);
Вручную механизм wp-cron запускается путем загрузки http://yourwebsite.com/wp-cron.php?doing_wp_cron
. Будем загружать этот url с периодичностью 5минут.
Как это сделать есть три варианта:
1). Использовать системный cron (понадобится shell/ssh доступ к серверу)
2). Использовать бесплатные cron-сервисы (www.setcronjob.com; www.onlinecronjobs.com; cronless.com; и т.п.)
3). Использовать настройки хостинга (хостинг должен поддерживать эту возможность)
Рассмотрим вариант 1:
Создать файл /etc/cron.d/wp-cron
с таким содержанием:
1 */1 * * * root /usr/bin/wget -q -O - http://yoursite.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Готово.