Найти в Дзене

Использование серверного Cron для вордпресс сайтов с низкой или нулевой посещаемостью (на хостинге Бегет) для настройки Телеграм бота

Этот прием можно использовать как для отдоенного сайта, так и для мультисайта (сети сайтов). Лучшее решение — настроить один системный Cron для всей сети, который будет запускать обработку событий для всех сайтов. Для простоты я подготовил для вас простую команду, которая подходит и для обычной установки вордперсс и для режима мультисайта. Просто вставьте ее и все будет работать отлично. https://ваш_сайт.ru/wp-cron.php?doing_wp_cron&network=1
пример
https://bot.troshin-tools.ru/wp-cron.php?doing_wp_cron&network=1 Обратите внимание, что адрес прописывается между одинарными кавычками В итоге у вас должна получится следующая запись wget -O /dev/null -t 1 -q 'https://bot.troshin-tools.ru/wp-cron.php?doing_wp_cron&network=1' Дальше настраивается как часто запускать проверку Cron заданий в вашем вордпрессе.
Предлагаю поставить каждые 5 минут В итоге ваш мастер будет выглядеть как на скрине ниже. Нажимаем «Добавить задание». Если надо, то сделайте себе пометку в соответствующем поле
Оглавление

Этот прием можно использовать как для отдоенного сайта, так и для мультисайта (сети сайтов). Лучшее решение — настроить один системный Cron для всей сети, который будет запускать обработку событий для всех сайтов.

Видеоурок от хостера >>

Статья с инструкциями по CronTab от хостера >>

Самый простой вариант

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

  1. Зайдите в CronTab в панели управления Бегет
  2. Вкладка «Мастер заданий», выберите в выпадающем меню Запрос по протоколу HTTPS
  3. В поле справа появится текстовая запись-шаблон, нужно туда вставить адрес

https://ваш_сайт.ru/wp-cron.php?doing_wp_cron&network=1

пример
https://
bot.troshin-tools.ru/wp-cron.php?doing_wp_cron&network=1

Обратите внимание, что адрес прописывается между одинарными кавычками

В итоге у вас должна получится следующая запись

wget -O /dev/null -t 1 -q 'https://bot.troshin-tools.ru/wp-cron.php?doing_wp_cron&network=1'

Дальше настраивается как часто запускать проверку Cron заданий в вашем вордпрессе.
Предлагаю поставить каждые 5 минут

  1. Сначала нажимаем на минуты и ставим Каждую 5-ю минуту
  2. Потом Часы — Каждый час
-2

В итоге ваш мастер будет выглядеть как на скрине ниже. Нажимаем «Добавить задание». Если надо, то сделайте себе пометку в соответствующем поле. Если у вас много сайтов на аккаунте, то это бывает полезно.

-4

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

-5

Всё теперь сообщения в бота будут отправляться надежно. даже если сайт будет с нулевой посещаемостью

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

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

Как это работает:

  1. Создаете один cron-запрос на сервере, который будет обращаться к главному сайту сети
  2. В обработчике добавляете перебор всех сайтов сети и запуск их cron-заданий

Пример cron-команды (каждые 5 минут) для одиночного сайта

bash
*/5 * * * * wget -q -O - https://ваш-сайт/
wp-cron.php?doing_wp_cron >/dev/null 2>&1

Аналогичное задание, но для всей сети сайтов (в режиме мультисайта)

Преимущества:

  • Один cron для всей сети
  • Не нужно настраивать отдельно для каждого сайта
  • Экономия ресурсов сервера
  • Централизованное управление

bash
*/5 * * * * wget -q -O - "https://ваш-сайт/wp-cron.php?doing_wp
_cron&network=1" >/dev/null 2>&1

Ключевой параметр &;network=1 — включает обработку всех сайтов сети при вызове wp-cron.php.

  1. WordPress автоматически обходит все активные сайты сети и запускает их отложенные задачи.
  2. Каждый бот получит свои изолированные cron-события (tg_leads_bot_process_scheduled_messages и другие).

Если сайтов очень много (100+), возможны таймауты. В этом случае добавьте в cron параметр &limit=20, чтобы обрабатывать по N сайтов за раз:

bash
*/5 * * * * wget -q -O - "https://ваш-сайт/wp-cron.php?doing_wp_cron&netw
ork=1&limit=20" >/dev/null 2>&1

Если не получается прописать команду в Cron (можно в ручную или через мастер), то обратитесь в поддержку. Или же вы можете заказать всю настройку под ключ у меня, что бы не разбираться во всем самостоятельно.