Intereting Posts
при использовании add_user_to_blog получения ошибки «Вызов неопределенной функции get_userdata» Создайте цикл контуров содержимого и выдержки с пейджингом и параметры для # сообщений Конкретная папка загрузки для PDF-файлов в пользовательском типе Post в WP multisite Удаление плагинов: зачем запускать dbDelta после $ wpdb-> query ($ drop_sql) Обновление сообщений превышает максимальное время выполнения Установить шаблон на основе запроса в URL-адресе Редактирование сообщения, 99% процессор? Пожалуйста, помогите мне с тегом <! – next page -> и php-кодом Как увеличить лимит символов для почтового имени 200? Создание пути в плагине для вызова функции Добавить встроенный стиль в get_the_category_list Добавление гостевой книги на мой сайт WordPress Отображение содержимого страницы ПОСЛЕ петли сообщений Редактирование плагинов element.style JS Plugin не выполняет js правильно. Попытка заставить все внутренние ссылки плавно прокручиваться

Динамическое имя события cron

В моей многоуровневой установке я хотел бы добавить ежедневное событие cron для некоторых из подсайтов. Cron будет импортировать сообщения через API с другого веб-сайта.

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

В моем классе я сделал:

$cron_name = 'import_blog_posts_in_network_daily_'.get_current_blog_id(); if ( !wp_next_scheduled( $cron_name) ) { wp_schedule_event( time(), 'daily', $cron_name ); } add_action( $cron_name, array($this, 'import_blog_posts_in_network') ); 

Этот код правильно регистрирует cron для каждого из моих подсайтов. Но, я не знаю, как я могу получить доступ к имени в моем import_blog_posts_in_network

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

Solutions Collecting From Web of "Динамическое имя события cron"

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

 $blog_id = get_current_blog_id(); $cron_name = 'import_blog_posts_in_network_daily_'.$blog_id; if ( !wp_next_scheduled( $cron_name) ) { wp_schedule_event( time(), 'daily', $cron_name, array($blog_id) ); } add_action( $cron_name, array($this, 'import_blog_posts_in_network') ); /* public function import_blog_posts_in_network($blog_id) { // do something for blog $blog_id } */ 

Надеюсь, это поможет!