Динамическое имя события 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 } */ 

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