PHP не является постоянно запущенным процессом: он запускается только по запросу. Итак, насколько я могу судить, Wordpress может обновляться только тогда, когда кто-то загружает веб-страницу. Но процесс обновления не происходит мгновенно, поэтому пользователь, посещающий сайт, будет очень медленно загружать страницу.
Есть ли другой трюк, который они используют для автоматического обновления? Я искал повсюду, но не нашел никакого объяснения.
Система, которую вы ищете здесь, называется "WP Cron". Это система фоновых процессов в WordPress, которая позволяет событиям происходить вне обычной обработки. Им все еще нужен триггер, чтобы запустить их, но они не мешают загрузке страниц из-за фонового процесса.
Так что да, кто-то должен загрузить вашу страницу. Выключенный в файле default-filters.php, вы найдете следующую строку кода:
add_action( 'init', 'wp_cron' );
Итак, при каждой загрузке страницы запускается функция wp_cron. Эта функция завершена в wp-includes / cron.php, и она проверяет запланированные события в базе данных. Если есть какие-то процессы, которые он должен запускать в фоновом режиме, он вызывает функцию spawn_cron.
Spawn cron имеет два возможных метода работы, но первым и наиболее распространенным является вызов функции wp_remote_post для установления соединения с самим собой по URL-адресу wp-cron.php. Делая этот дополнительный HTTP-запрос, он запускает другой процесс PHP, чтобы выполнить всю реальную работу. Запрос, который он делает здесь, является неблокирующим, с таймаутом 0,01 секунды. Таким образом, это не дает никаких результатов. Цель запроса - просто запустить новый процесс в фоновом режиме. После того, как это сделано, он просто возвращается, так что у пользователя просмотра никогда не возникает никаких задержек.
Процесс wp-cron.php - это то, что выполняет реальную работу, обновление и все остальное. Многие процессы в WordPress обрабатываются системой cron. Запланированная публикация после публикации, обработка пингов, проверка обновлений, все, что должно происходить вне обычного потока, может быть запланировано и затем выполнено по мере необходимости.
Но да, нормальное попадание на сайт действительно должно произойти, чтобы начать процесс. И нет, WordPress.org не связывается с вашим сайтом напрямую, чтобы начать работу, ваш сайт должен получать некоторую форму трафика, чтобы запустить его. Подойдет любая форма трафика.