wp_cron()

Регистрирует _wp_cron() для выполнения на действии 'wp_loaded'
Функция WordPress
INT 2.1.0
WordPress Icon

Описание функции

Функция wp_cron() регистрирует выполнение функции _wp_cron() на действии wp_loaded. Она используется для запуска задач планировщика WordPress, таких как плагины, темы и другие процессы, которые должны выполняться по расписанию.

Планировщик WordPress, известный как WP-Cron, предоставляет возможность запускать задачи в фоновом режиме, без необходимости внешнего сервера cron. Он основан на событиях и может быть использован для автоматического выполнения задач по расписанию.

Использование

wp_cron(): bool|int|void

Функция wp_cron() не принимает никаких аргументов.

Она регистрирует функцию _wp_cron() для выполнения на действии wp_loaded.

Функция wp_cron() возвращает одно из трех значений:

  • bool — Целое число, указывающее количество запущенных событий (0 указывает на отсутствие необходимости запуска событий).
  • int — Ложь (false), если не удалось запустить одно или несколько событий.
  • void — Если функция зарегистрировала _wp_cron() для выполнения на действии.

Примеры использования

Регистрация функции wp_cron() на событие wp_loaded


add_action( 'wp_loaded', 'my_custom_function' );
function my_custom_function() {
    // Ваш код здесь
}

Функция add_action() используется для регистрации функции my_custom_function() на событие wp_loaded. Когда событие wp_loaded происходит, функция my_custom_function() будет выполнена.

Выполнение функции wp_cron() при загрузке страницы


wp_cron();

Функция wp_cron() вызывается для выполнения запланированных событий _wp_cron() при загрузке страницы.

Планирование выполнения функции wp_cron() через определенный интервал времени


wp_schedule_event( time(), 'daily', 'my_custom_event' );
add_action( 'my_custom_event', 'my_custom_function' );
function my_custom_function() {
    // Ваш код здесь
}

Функция wp_schedule_event() используется для планирования выполнения события my_custom_event с интервалом времени. В данном примере событие будет выполняться ежедневно, начиная с текущего времени. Затем функция my_custom_function() регистрируется для выполнения при возникновении события my_custom_event.

Отмена выполнения функции wp_cron()


wp_clear_scheduled_hook( 'my_custom_event' );

Функция wp_clear_scheduled_hook() используется для отмены выполнения запланированного события my_custom_event. В данном примере событие my_custom_event будет удалено из списка запланированных событий.

Вопросы и ответы

Как настроить и запустить wp_cron()?

Для настройки и запуска функции wp_cron() в WordPress необходимо зарегистрировать ее на действии wp_loaded. Это можно сделать с помощью следующего кода:


add_action( 'wp_loaded', '_wp_cron' );

Функция wp_cron() будет выполняться каждый раз при загрузке WordPress.

Как проверить, работает ли wp_cron()?

Для проверки работы функции wp_cron() можно использовать возвращаемое ею значение. Если функция успешно выполнилась и создала одно или более событий, она вернет целое число, указывающее количество созданных событий. Если создание событий не удалось хотя бы для одного из них, функция вернет значение false. Если функция зарегистрировала _wp_cron() для выполнения на действии, она вернет void.


$result = wp_cron();
if ( is_int( $result ) ) {
    echo 'wp_cron() успешно создал ' . $result . ' событий.';
} elseif ( false === $result ) {
    echo 'Ошибка при создании событий.';
} else {
    echo 'wp_cron() зарегистрирован для выполнения на действии.';
}

Как изменить интервал выполнения wp_cron()?

Интервал выполнения функции wp_cron() можно изменить с помощью фильтра cron_schedules. Для этого необходимо добавить новый элемент в массив с интервалами. Например, чтобы установить интервал в 5 минут, можно использовать следующий код:


add_filter( 'cron_schedules', 'custom_cron_interval' );
function custom_cron_interval( $schedules ) {
    $schedules['5_minutes'] = array(
        'interval' => 300,
        'display'  => __( 'Every 5 Minutes' )
    );
    return $schedules;
}

После добавления фильтра, новый интервал будет доступен для использования при создании событий с помощью функции wp_schedule_event().

Как отключить wp_cron() и использовать настоящий cron?

wp_cron() — это функция WordPress, которая позволяет запускать задачи по расписанию. В некоторых случаях может быть необходимо отключить wp_cron() и использовать настоящий cron.

Для отключения wp_cron() и использования настоящего cron необходимо добавить следующую строку кода в файл wp-config.php:

define('DISABLE_WP_CRON', true);

После этого wp_cron() будет отключена и задачи будут запускаться только при вызове настоящего cron.

Как добавить свои собственные задачи в wp_cron()?

wp_cron() позволяет добавлять свои собственные задачи для выполнения по расписанию. Для этого необходимо использовать функцию wp_schedule_event().

Пример кода:

$timestamp = time() + 3600; // Задаем время выполнения задачи через 1 час
$recurrence = 'hourly'; // Задаем периодичность выполнения задачи - каждый час
// Регистрируем задачу
wp_schedule_event($timestamp, $recurrence, 'my_custom_task');

В приведенном примере задача будет выполняться каждый час, начиная с указанного времени.

Как обрабатывать ошибки при выполнении wp_cron()?

При выполнении задач с помощью wp_cron() могут возникать ошибки. Для обработки ошибок можно использовать хук wp_error.

Пример кода:

add_action('wp_error', 'my_custom_error_handler');
function my_custom_error_handler($error) {
    // Обработка ошибки
    echo 'Ошибка: ' . $error->get_error_message();
}

В приведенном примере при возникновении ошибки будет вызвана функция my_custom_error_handler(), которая будет обрабатывать ошибку и выводить сообщение об ошибке.

Как ограничить доступ к wp_cron()?

Функция wp_cron() в WordPress предназначена для регистрации выполнения задач по расписанию. Она может быть доступна для запуска извне, что может привести к нежелательным последствиям. Чтобы ограничить доступ к wp_cron(), можно использовать фильтр disable_wp_cron.

// Отключение доступа к wp_cron()
add_filter( 'disable_wp_cron', '__return_true' );

Как использовать wp_cron() для отправки писем по расписанию?

Функция wp_cron() может быть использована для отправки писем по расписанию. Для этого необходимо зарегистрировать свою задачу с помощью функции wp_schedule_event().

// Регистрация задачи для отправки писем каждый день в 12:00
function send_emails_daily() {
    // Ваш код для отправки писем
}
add_action( 'send_emails_daily_hook', 'send_emails_daily' );
wp_schedule_event( strtotime( '12:00' ), 'daily', 'send_emails_daily_hook' );

Как использовать wp_cron() для обновления данных из внешнего источника?

Функция wp_cron() может быть использована для обновления данных из внешнего источника. Для этого необходимо зарегистрировать свою задачу с помощью функции wp_schedule_event().

// Регистрация задачи для обновления данных каждый час
function update_data_hourly() {
    // Ваш код для обновления данных
}
add_action( 'update_data_hourly_hook', 'update_data_hourly' );
wp_schedule_event( strtotime( '00:00' ), 'hourly', 'update_data_hourly_hook' );

Функция wp_cron() в WordPress позволяет регистрировать и выполнять задачи по расписанию. Она может быть использована для ограничения доступа, отправки писем по расписанию и обновления данных из внешнего источника. Правильное использование wp_cron() поможет автоматизировать процессы в вашем WordPress сайте.

Связанные элементы

  • Функция wp_next_scheduled(): возвращает временную метку следующего запланированного события.
  • Функция wp_schedule_event(): регистрирует новое событие в планировщике.
  • Функция wp_unschedule_event(): удаляет событие из планировщика.
  • Функция wp_clear_scheduled_hook(): удаляет все запланированные события для указанного хука.
  • Функция wp_get_schedule(): возвращает расписание для указанного хука.
  • Функция wp_reschedule_event(): изменяет расписание для указанного события.
Обсуждение