Я пишу следующий код для запуска своей функции каждый день в 16:20 ..
Но я думаю, это проблема в коде ..
не работает
Отметка времени эпохи: 1427488800
28.03.2015, 1:10:00
if( !wp_next_scheduled( 'import_into_db' ) ) {
wp_schedule_event( time('1427488800'), 'daily', 'import_into_db' );
function import_into_db(){
////My code
}
add_action('wp', 'import_into_db');
}
time()
Функция не принимает входной аргумент, попробуйтеstrtotime()
функцию илиstrftime()
функцию вместо того , чтобы создавать пользовательские метки времени из строки. Но если у вас уже есть временные метки, они вам не нужны.Ответы:
WP Cron запускается, когда кто-то заходит на ваш сайт. Таким образом, если никто не посещает, Cron никогда не работает.
Сейчас есть 2 решения:
https://support.hostgator.com/articles/specialized-help/technical/wordpress/how-to-replace-wordpress-cron-with-a-real-cron-job
Используйте пользовательский интервал в
wp_schedule_event()
:и вы можете увидеть эти срезы
http://www.nextscripts.com/tutorials/wp-cron-scheduling-tasks-in-wordpress/
http://www.iceablethemes.com/optimize-wordpress-replace-wp_cron-real-cron-job/
http://www.smashingmagazine.com/2013/10/16/schedule-events-using-wordpress-cron/
кастомный wp cron
http://codex.wordpress.org/Plugin_API/Filter_Reference/cron_schedules
http://www.smashingmagazine.com/2013/10/16/schedule-events-using-wordpress-cron/
http://www.viper007bond.com/2011/12/14/how-to-create-custom-wordpress-cron-intervals/
http://www.sitepoint.com/mastering-wordpress-cron/
https://tommcfarlin.com/wordpress-cron-jobs/
http://www.paulund.co.uk/create-cron-jobs-in-wordpress
cron linux
http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/
http://www.thesitewizard.com/general/set-cron-job.shtml
http://code.tutsplus.com/tutorials/scheduling-tasks-with-cron-jobs--net-8800
поиск Гугл
источник
Вместо time () используйте функцию strtotime (), чтобы вы могли указать время суток - она будет использовать сегодняшнюю дату с указанным вами временем. Итак, в вашем случае:
Использование в
wp_schedule_event
функции будет выглядеть так:источник
Что ж, 1427488800 разрешается до 27 марта 2015 года, поэтому ваше мероприятие еще не настроено на начало.
Также имейте в виду, что запланированные события WP будут срабатывать только в том случае, если кто-то посетит сайт в это время.
источник
Этот код работает для меня, я думаю, что он ближе к первоначальному вопросу. Вы хотите получить UNIX time + timezone для времени, когда вы хотите, чтобы он выполнялся. Как только cron выполняется и удаляется из WP, он воссоздает себя в указанное вами время.
В следующем примере он работает для AEST (GMT + 10) @ 6 утра каждое утро. Поэтому я планирую на 20:00 по Гринвичу каждый день.
источник