Модератор
Юрій
(@yube)
Речь о ‘cron’. Там сериализированный массив. Кое-что там и так можно увидеть, например, нечто типа s:19:"publish_future_post";a:1
. Если такое есть, значит, задачу хрону поставили.
А отсутствие wp-cron в логах — это уже зацепка. Видимо, по какой-то причине движок не может (или не хочет) дернуть самого себя за cron. Я пока плохо представляю, где тут копать…
s:19:»publish_future_post»;a:1 есть.
Модератор
Юрій
(@yube)
Я посмотрел код. Получается так, что функция wp_cron() из файла /wp-includes/cron.php должна вызывать spawn_cron(), которая порождает этот самый запрос движка самого к себе (wp_remote_post()). Чего оно не срабатывает, я угадать не могу (я не экстрасенс, а патологоанатом:)) Но я увидел внутри if (defined(‘ALTERNATE_WP_CRON’… То есть, есть альтернативный способ разбудить хрона, прописав в wp-config
define (‘ALTERNATE_WP_CRON’, true);
В конце концов, его можно, наверно, попинать и снаружи.
(Хочу напомнить: я с вордпрессовским хроном не дружу :))
UPD: судя по всему, с ALTERNATE_WP_CRON в логах не будет wp-cron.php
Прописал define. Создал заметку.
Появилось в логе:
123.123.123.123 - - [25/Sep/2011:12:17:35 -0700] "GET /wp-login.php/wp-admin/install.php?doing_wp_cron HTTP/1.1" 200 2724 "-" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.51"
123.123.123.123 - - [25/Sep/2011:12:17:43 -0700] "POST /wp-login.php HTTP/1.1" 302 884 "http://mysite.com/wp-login.php/wp-admin/install.php?doing_wp_cron" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.51"
123.123.123.123 - - [25/Sep/2011:12:17:44 -0700] "GET /wp-admin/ HTTP/1.1" 200 35989 "http://mysite.com/wp-login.php/wp-admin/install.php?doing_wp_cron" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.51"
Скрестил пальцы.
Через положенное время, опять: «Публикация просрочена».
Следующая заметка опубликовалась!
На радостях повторил ещё раз. И снова: просрочена.
Завтра поэкспериментирую со временем отсрочки. Больше ничего в голову не приходит.
Пробовал по-всякому. Могу сделать вывод пока такой:
Прописывание в конфиг строки
define (‘ALTERNATE_WP_CRON’, true);
принудительно включает крон ВП. Записи публикуются. В логе честно появляется
?doing_wp_cron HTTP/1.1″ 200
Но! В назначенное время сообщение «Публикация просрочена» всё равно появляется в админке. При этом заметка на сайте публикуется. И надпись сменяется на «Опубликовано» — через несколько минут.
Залью вместо тестового основной сайт и попробую как работает планирование на нём.
На основном сайте тоже всё получилось.
Спасибо, Юрий и wikicms!