Я хочу повторить строку после определенного периода времени, используя планирование WordPress. Ниже мой код в functions.php. Ничего не печатается через оператор echo, а также нет ошибки. Пожалуйста, объясните, что я делаю не так.
function add_new_intervals($schedules) {
// add weekly and monthly intervals
$schedules['now'] = array(
'interval' => 1,
'display' => __('Once Weekly')
);
return $schedules;
}
add_filter( 'cron_schedules', 'add_new_intervals');
function my_activation() {
if ( !wp_next_scheduled( 'my_hourly_event' ) ) {
wp_schedule_event( current_time( 'timestamp' ),'now', 'my_hourly_event');
}
}
add_action('wp', 'my_activation');
add_action('my_hourly_event', 'do_this_hourly');
function do_this_hourly() {
echo "This is the Text";
}
Одна вещь, которую вы делаете неправильно, — это ожидание возможности увидеть что-то эхо при запуске задания cron. Лучшим тестом было бы внести изменения в базу данных, что-то вроде:
`update_option('my_cron_test', current_time())`;
Задания WP Cron (как и большинство заданий cron) предназначены для запуска функции, которая должна выполняться по расписанию. Они не предназначены для создания «пользовательского вывода».
Некоторые советы по работе с WP Cron:
Ваш код будет пытаться запускать эту функцию один раз в час, но при настройке WP он может (или не может) запускаться в зависимости от того, посещается ли сайт.
Существует много решений этой слабости, самое простое / эффективное — настроить на сервере сервер crontab, запускающий cron WP. Примерно так:
/15 * * * wget -q -O - http://yourdomain.com/wp-cron.php?doing_wp_cron
Для получения дополнительной помощи с этим (это может быть сложно), проверьте эти статьи:
Правильная настройка рабочих мест WP Cron
Освоение WP Cron
Других решений пока нет …