Отложенная публикация и wp-cron.php
Собираясь уехать на недельку отдохнуть, я решил опробовать такую функцию WordPress, как отложенная публикация записи. Написал несколько статей, распределил даты публикации на неделю вперед и попробовал испытать эту возможность блога на одной из статей. Однако WordPress отказался публиковать статью в назначенное время...
Понравился пост? Подпишись на обновления по RSS или Twitter !
#1,
вот ещё альтернативный русский cron сервис
#2,
Вопрос не по сабжу.
А что за плагин, который позволяет подписаться на комментарии БЕЗ отправки сперва оного?
#3,
Иными словами, я о поле "Подписаться на уведомления без комментирования." :-)
#4,
самый обычный Subscribe To Comments 2.1.2 - там есть возможность такой подписки.
#5,
Этой службой кто-нибудь пользовался? Отпишитесь как она работает. Я попробовал подключиться, там дают всего две недели на cron, потом надо снова заходить и продлевать. Есть смысл пользоваться этой службой или все таки лучше WebCron.org
#6,
пользуюсь ей почти месяц, никаких нареканий - работает как часы.
#7,
Пользуюсь WebCron.org уже больше года, 4 движка с него пашут стабильно, хороший сервис. Первый и последний раз было там когда настраивало.
#8,
Если я желаю подготовить много статей, скажем, на месяц вперед, для публикации по несколько в день, не закинет ли принудительный крон с WebCron.org все запланированные статьи сразу в первый же заход? Или же надо будет теперь сидеть у кнопки с тем удаленным кроном и регулировать процесс каждые два - три часа?
пы.сы. Хостинг мой изначально идет без крона, я на серваке + еще 99 чел, так что вряд ли провайдер согласится что либо менять там.
#9,
он будет их закидывать только если текущая дата больше, чем запланированная дата публикации.
если распределить 30 записей на 30 дней - то публиковаться они будут по одной записи в день.
#10,
спасибо, проверено, работает)
#11,
Автору спасибо за подсказку, долго не мог понять почему не публикуются запланированые посты.
От себя добавлю, что после того как вы закомментируете строки
стоит переименовать ваш wp-cron.php во что-нибудь не столь очевидное (например 12821232_hidden_cr.php), т.к. комментирование этих двух строк позволяет любому желающему дергать ваш крон скрипт загружая ваш сервак бестолковыми запросами, что может совсем не понравится вашему хостеру.
и еще, некоторые хостинг провайдеры не разрешают вносить в крон вызов внешних файлов, тогда путь к скрипту пишите локальный и не забудте перед скрипом указать путь к php интерпретатору, например на хостинге от агавы запись в кроне будет выглядеть так:
#12,
Хостер Завахост наотрез отказался дать нужную информацию для програмирования крона...
в строке команда изначально появляется "/home/название_аккаунта/" - больше ничего не известно. Предположу, что туда надо ввести "/home/название_аккаунта/domains/адрес/public_html/cron.php"
Помогите настроить плз...
#13,
а он вообще крон то предоставляет? многие хостеры не дают крон для пользователей. воспользуйтесь вебкроном, кроме того, что нельзя дергать файл чаще чем раз в час он ничем обычному крону не уступает.
#14,
крон они мне дали, а я всё-таки смог его настроить (хостер сказал, что, судя по логам, крон дёргает файл), но просроченная сататья так и не публиковалась. Значит проблема в самом файле... но как её исправить?
Здесь ( http://mywordpress.ru/support/viewtopic.php?id=3515 ) не знают...
#15,
так строчки то нужные в wp-cron.php вы закомментировали?
#16,
Насколько я понял, заковычивать те строки нужно лишь если нет поддржки запуска локального файла. А раз крон всё-таки пытается запустить его - значит такая поддржка у меня есть? Может ему какие-нибудь права на запуск нужны? или я что-то не так понял?
#17,
если бы у вас все было хорошо с запуском локального файла - вы бы не искали эту тему, WordPress сам бы публиковал посты и вы про крон и не знали бы ничего.
а раз уж вам пришлось настраивать крон для запуска wp-cron.php - закомментируйте нужные строчки, иначе wp-cron.php не будет выполняться.
ps никакие права не нужны, просто закомментируйте строчки.
#18,
а локальный адрес (который сейчас прописан в cron'е) оставить или придётся писать внешний?
#19,
ап
#20,
ну так попробуйте сначала один вариант, затем другой и посмотрите, что будет работать в вашем случае.
#21,
так и хотел сделать, но, думал, может Вы знаете...
#22,
что означают "-q" "-f" в команде крона?
#23,
А если все нормально постило, а после того как было переведено время на час назад. (т.е. я ничего не переводил, а переход на зимнее время) перестали публиковаться запланированные записи.
т.е. наступает время для публикации поста и он не публикуется а пишет 1 минута до публикации, потом 2 минуты до публикации и тд.
Может есть другой способ решить эту проблему или только этот?
#24,
а куда написать запланированные записи? в черновик? подскажите пожалуйста
#25,
Подскажите а как вообще отключить wp-cron.php
Чтоб вордпресс его вообще не запускал?
#26,
Идеологически более правильным было бы не комментировать упомянутые строки, а вызывать скрипт wp-cron.php c параметром check. Значение параметра легко определить, временно добавив перед строкой
что-то типа
Тогда, набрав в адресной строке броузера http://adres.bloga.com/wp-cron.php, можно увидеть значение хеша (46cbe1674da1d2888104482d6ed4f87f). Следовательно, из крона обращаться к http://adres.bloga.com/wp-cron.php?check=46cbe1674da1d2888104482d6ed4f87f. Естественно, для предотвращения DoS-атак лучше заменить стандартную последовательность 187425 на что-то другое.
#27,
так как webcron.org стал платным советую использовать сервис http://www.onlinecronjobs.com/ - вроде не хуже. правда, надо держать пустой текстовой файл на сервере с определенным именем - они так страхуются.
#28,
а есть ли нормальное, человеческое решение- при том, что проблема случилась при переходе на зимнее время.. в смысле отредактировать как-то файл, или что-то на сервере поменять?
#29,
а что такое "человеческое" решение? установите в общих настройках временную зону с учетом перехода времени и все у вас должно будет работать правильно.
#30,
так не работает.. уже и обновил на 2.8.5 версию..и ерунда.. ничего нет. причем на локалке там список городов в настройках выходит, на сервере нет.
при этом на сервере стоят другие вордпрессы- там все нормально с отложенной публикацией..
один только сайт, который переносился в момент смены времени, поимел такие проблемы..
#31,
http://ru.forums.wordpress.org/topic/%D1%81%D0%BB%D0%BE%D0%B6%D0%BD%D0%B0%D1%8F-%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0-%D1%81-%D0%BE%D1%82%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%BD%D1%8B%D0%BC%D0%B8-%D0%BF%D0%BE%D1%81%D1%82%D0%B0%D0%BC%D0%B8?replies=5#post-8190
вот проблема была решена..нетривиально!
#32,
Здравствуйте, а не подскажете что делать с последними версиями wp, например WordPress 2.8.6, там указанного вами кода в cron.php вообще нет. Помогите пожалуйста.
#33,
честно говоря я не знаю. попробуйте удалить строчки
а после этого дергайте файл вручную.
#34,
Здравствуйте.
Такая же проблема... WordPress 2.8.6 - указанного вами кода нет.
Если дергаешь файл вручную - все сразу публикуется. Но тогда какой в этом смысл.. Неужели никак нельзя наладить автоматическое выполнение скрипта?
На хостинге стоит Direct Admin, там есть планировщик Cron, ввожу прямой адрес задания http://мойблог.com/wp-cron.php
но всё равно скрипт почему-то не выполняется..
Может нужно вводить какой-то другой путь к файлу крона?
Спасибо.
#35,
полагаю у вас должна быть внутренняя ссылка, а не внешняя. а если и это не поможет, то воспользуйтесь службами веб-крона, тут в комментариях достаточно ссылок.
#36,
http://private-seo-soft.blogspot.com/2010/04/crontab.html
тут я описал детально все оп пунктам весь процесс настройки крона вручную и через DirectAdmin
#37,
Flector,СПАСИБО! Без твоего комента еще бы долго лазил, все делал, но посты не публиковались в нужное время( Пока не установил в общих настройках временную зону с учетом перехода времени и все стало публиковаться! Спасибо!
#38,
то есть можно будет любому в сети интернет запускать wp-cron?..
#39,
Как я посмотрю, многие сталкиваются с этой проблемой, но решают её какими-то аццки сложными методами :)
Мне же помогла просто установка плагина Missed Schedule Fix WP которая сразу же и без лишних телодвижений решила вопрос неработающей отсроченной публикации.
Просто поставил этот плагин - И ВСЁ!!!
#40,
ну это тоже вариант.
#41,
Да херня ваш плагин. С ним те же самые проблемы.
#42,
справедливости ради, стоит заметить, что он не наш :)
на версиях 2.7, 2.8, 2.9, 3,1 - проверено на нескольких площадках - мне помогло
#43,
WP версия 3.0.1, хостинг - инфобокс
Не помогает
#44,
Стоит WP 3.0.1, хостинг fastvps.
Не публикуются запланированные записи. Если ввести в браузере site.ru/wp-cron.php , то записи публикуются.
Пытался через cron запускать */02 * * * * /usr/bin/php5 -f /var/.../wp-cron.php - записи не публикуются.
Также комментировал строки
if ( !empty($_POST) || defined('DOING_AJAX') || defined('DOING_CRON') )
die();
в файле wp-cron.php, тоже ничего не помогло.
Хелп ми
#45,
2Андрей: а cron точно успешно выполняет Вашу команду? Проверьте есть ли в лог-файле /var/log/cron записи об успешном запуске php. Еще как вариант можно попробовать дергать скрипт curl-ом вместо php.
#46,
Подскажите что и где надо настроить на сервере чтобы работала отложенная публикация? Варианты с кроном и плагинами не подходят.
#47,
Константин, а почему не подходят варианты с кроном? Крон - это самый правильный вариант. Если Ваш хостер не даёт управлять кроном на хостинг-сервере, то всегда можно воспользоваться удалёнными сервисами (находятся гуглением по запросу типа "Web Based Cron") или попросить знакомого админа на своем сервере настроить обращение к скрипту Вашего блога в заданные моменты времени.
#48,
Alex, сайтов много - на всех настраивать крон - сложней чем изменить конфигурацию сервера. Сколько не искал по инету про fsockopen так и не понял как он настраивается.
#49,
Если проблема только в fsockopen, то нужно проверить 2 вещи.
1) Что соответствующий параметр в php.ini включен (по-моему, это allow_url_fopen, но на 100% не уверен).
2) Что конфигурация firewall-а хостинг-сервера разрешает исходящие соединения.
Если есть рутовый доступ, то проверять правильность настройки всего этого дела удобно tcpdump-ом.
#50,
Alex, allow_url_fopen = On, allow_url_include = Off, вроде так и должно быть? Сейчас посмотрел на старом хостинге в админке при входе вордпресс показывает новости и что-то там про плагины, а на новом сервере не показывает - видимо действительно дело в запрете на внешние запросы. Пока не знаю как поменять, но эта проблема немного в другом виде всплывает и на других серверах и cms, так что надо разобраться. Если подскажете куда копать буду очень признателен.
#51,
На новом хостинге нужно проверить настройки firewall-а. Если у Вас нет рутового доступа к серверу с сайтом, спросите об этом хостера (или того, у кого такой доступ есть).
#52,
Теперь сайт на сервере, iptables-save выдает:
# Generated by iptables-save v1.4.2 on Wed Apr 20 16:10:32 2011
*mangle
:PREROUTING ACCEPT [1615854:1421242626]
:INPUT ACCEPT [1615854:1421242626]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1894869:2446249320]
:POSTROUTING ACCEPT [1894869:2446249320]
COMMIT
# Completed on Wed Apr 20 16:10:32 2011
# Generated by iptables-save v1.4.2 on Wed Apr 20 16:10:32 2011
*filter
:INPUT ACCEPT [1615854:1421242626]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1894869:2446249320]
COMMIT
# Completed on Wed Apr 20 16:10:32 2011
#53,
Судя по :OUTPUT ACCEPT [1894869:2446249320] с firewall-ом всё нормально. Стоит еще проверить собран ли PHP с поддержкой сокетов.
#54,
phpinfo() показывает Sockets Support enabled... может проблема в отсутствии апача? На двух серверах где есть такая ошибка установлены только nginx, php-fpm и MySQL, где есть апач все работает нормально.
#55,
Тут уже сложно заочно что-то сказать. Надо смотреть своими глазами. Если хотите, можете дать мне доступ на сервер, я попробую разобраться. Контакты есть на моём сайте.
#56,
Вопрос с отложенной публикацией решился доустановкой php-pear
#57,
У меня проблема - бэкапы не то, что не отсылаются на e-mail, но и не сжимаются и не скачиваются. Но на сервере сохраняются в несжатом виде. В чем проблема может быть, подскажите, пожалуйста, облазил все форумы, ничего путного не нашел.
Искал у себя в файле wp-cron.php строчку которую вы написали, не нашел почему то...
#58,
ну очевидно, что на сервере у вас банально не хватает установленного софта. как минимум, архиваторов.
#59,
у кого остались проблемы с публикацией отложенных записей советую попробовать плагин Missed Schedule WordPress Plugin Fix.
#60,
У меня была такая же проблема, решилась просто.
Внезапно перестали публиковаться записи по расписанию. Т.е., все было ОК, ничего не менялось / не ставилось, плагинов новых не появлялось - и тут бац. В итоге долгих поисков оказалось, что из файла wp-cron.php исчез закрывающий тег > в самом конце. КАК??? ХЗ. Пропал. Вписали - все заработало.
#61,
Приветствую.
Подскажите, а почему статья помечена как неактуальная? Я пробовал через cron запускать wp-cron.php на версии 4.2.2 примерно вот так:
php -f wp-cron.php
И судя по всему, он отрабатывает как положено, по крайней мере, отложенную запись опубликовал.
#62,
потому что указанного кода в файле больше нет. а так то да, дергать wp-cron.php самостоятельно можно по-прежнему.
#63,
Кода в файле нет, а проблема осталась. Что так и дергаться?
#64,
а что остается тем, у кого кривые сервера?
только дергаться.