last day (15 days later) » 

6:22 AM
0
Q: В фоне обновлять функцию

Pavel8289Есть рабочий код, который тянет статью с facebook, разбирает на составляющие и добавляет в БД сайта. Есть минус этого - то, что он сейчас на frontend висит, и начинает работать, когда я зашел на сайт/обновил - он отработал. Как сделать можно так, чтобы он на backend работал в "фоне"? В код за...

 
Спасибо, за ответ. Как раз нашел функцию wp_cron()
 
wp_cron() сработает только в том случае, если есть обращение к сайту. Если обращений нет, то ничего не произойдёт. См. комментарий @SeVlad выше.
 
@KAGG Design серверный крон включил уже, указал путь домен/wp-cron.php, в логах на сервере в работе крона нету, но по прежнему не запускает функцию которая написана в плагине. Функция в плагине срабатывает только когда, я в админки. С чем это может быть связанно, в файле конфига все чисто... даже принудительно включил альтернативный крон define('ALTERNATE_WP_CRON', true);
 
Без кода прямо в вопросе - мы не угадаем.
 
@KAGG Design добавил код и все что делаю чтоб заработало.
 
6:22 AM
На вид выглядит всё правильно. Но а) misha, у которого вы позаимствовали код, пишет, что может не работать из-за проблем на сервере б) я уже не помню, почему, но я ушел от wget... У меня на сервере по cron выполняется php wp-cron.php - без всяких get-параметров. И всё работает.
А у вас этот код приведенный выполняется при инициализации плагина? Я вешаю на хук активации плагина. Ну или хотя бы на init.
И еще - файл назвается ****-admin.php - может, он запускается только в админке?
 
@KAGG Design Вчера весь день пытался настроить, чтоб понимать работает или нет крон. Запланированная публикация не публиковалась.
 
У меня эта конструкция работает, правда в crontab стоит php wp-cron.php. Что любопытно - сообщения при срабатывании крон пишутся в лог, но почта по wp_mail не отправляется. Пытаюсь понять, почему...
 
6:38 AM
Посмотрел ошибки, понял. Чтобы wp_mail отправляла почту в кроне, надо ставить headers:
$headers = 'From: me <me@example.com>' . "\r\n";
wp_mail( 'me@example.com', 'Cron test', 'This is a test cron hook.', $headers );
Отсекайте проблемы по шагам. В debug.log в обычном режиме пишет сайт информацию по error_log()? Если да, вставьте error_log() в хук. Если в обычном режиме срабатывает, а по cron - нет, то у вас сервер не выполняет crontab задания
И ещё раз - файл назвается ***-admin.php. Он точно работает из фронтенда, без админки, в режиме инкогнито?
Уберите define('ALTERNATE_WP_CRON', true); из конфига. Даже Кодекс пишет, что этот метод ненадёжный.
 
7:02 AM
То есть вы в задаче на крон просто написали "php wp-cron.php" или путь все же где он лежит указали ?
 
нет, ну конечно путь указал.
 
Нет, в **-admin.php это чисто админский файл, если я на фронт вешаю.. то у меня он работает как только обращение происходит к сайту обновил страницу или зашел в первые. А хочу чтоб ничего неделал и не заходил файл отработал.
 
ничего не понял. В текущей ситуации, если обновить страницу сайта незалогиненным пользователем, в режиме инкогнито - работает? Если не работает, то и под крон работать не будет.
 

last day (15 days later) »