Intereting Posts
Зациклируйте сообщения пост-типа (события) и создайте файл .ics (iCal)? Разбиение страницы с помощью пользовательского запроса WP не работает Ссылки вокруг элементов уровня блока в TinyMCE arent working Создание пользовательской структуры константной ссылки для языков Шаблон одной страницы для пользовательского post_type Могу ли я использовать как пользовательский отрывок, так и отрезанный отрывок? Gravity Forms Entry List, отображающий условные заполнители Как вставить пользовательскую функцию в wp_insert_post Функция, которая получает значение полей ACF перед сохранением wp_signon возвращает пользователя, но пользователь не зарегистрирован, потому что wp установлен на субдомене. Как заставить его работать? Моя функция php header () не работает Почта не отправляется после регистрации локального сайта выдать при переводе wordpress их Добавить разделитель в подменю admin URL-адрес сайта не работает после миграции в worpress, все ссылки повреждены

Получение этого кода для работы в Multisite

Я хотел бы запустить этот код через cron на multisite. Когда я использую hook_init, код выполняется и отлично работает, удаляя блоги, однако, когда я устанавливаю его как cron, а затем запускаю событие с помощью плагина WP Crontrol, блоги не удаляются. Что дает?

register_activation_hook( __FILE__, 'remove_blogs_activation' ); /** * On activation, set a time, frequency and name of an action hook to be scheduled. */ function remove_blogs_activation() { wp_schedule_event( 1386979200, 'daily', 'remove_blogs_hook' ); } add_action( 'remove_blogs_hook', 'remove_blogs_daily' ); function remove_blogs_daily() { $all_blogs = wp_get_sites(); foreach ( $all_blogs as $key => $val ) { $blogs_to_keep = array( '1','2' ); if ( ! in_array( $val['blog_id'], $blogs_to_keep ) ) { wpmu_delete_blog( $val['blog_id'], true ); } } } 

Новый код, который я использую, чтобы также очистить пользователей:

  <?php register_activation_hook( __FILE__, 'wpchat_clear_sites_activation' ); /** * On activation, set a time, frequency and name of an action hook to be scheduled. */ function wpchat_clear_sites_activation() { wp_schedule_event( 1386979200, 'daily', 'daily_clear_sites_hook' ); } add_action( 'daily_clear_sites_hook', 'wpchat_clear_out_sites_daily' ); /** * Clear out the sites and users */ function wpchat_clear_out_sites_daily() { require_once( ABSPATH . 'wp-admin/includes/admin.php' ); require_once( ABSPATH . 'wp-admin/includes/user.php' ); if( ! function_exists( 'wpmu_delete_blog' ) ) return; $users_to_keep = array( '1','4','43' ); $blogs_to_keep = array( '1','4' ); $all_sites = wp_get_sites(); // Remove all blogs except for the main blog and the template blog foreach ( $all_sites as $key => $val ) { $users = get_users( array( 'blog_id' => $val['blog_id'], 'fields' => ID ) ); // Remove all users except for the test site admins foreach ( $users as $user) { if ( ! in_array( $user, $users_to_keep ) ) { wp_delete_user( $user['ID'] ); } } if ( ! in_array( $val['blog_id'], $blogs_to_keep ) ) { wpmu_delete_blog( $val['blog_id'], true ); } } } register_deactivation_hook( __FILE__, 'wpchat_clear_sites_deactivation' ); /** * On deactivation, remove all functions from the scheduled action hook. */ function wpchat_clear_sites_deactivation() { wp_clear_scheduled_hook( 'daily_clear_sites_hook' ); } 

Проблема:

Когда wp-cron.php , он включает только:

 require_once( dirname( __FILE__ ) . '/wp-load.php' ); 

поэтому проблема, с которой вы сталкиваетесь, заключается в том, что

 wpmu_delete_blog() 

не определено, когда вы вызываете его из функции remove_blogs_daily() .

Возможное решение:

Поэтому вам нужно добавить эту строку:

 require_once( ABSPATH . 'wp-admin/includes/admin.php' ); 

в ваш код, чтобы исправить это.

Попробуйте это, например:

 function remove_blogs_daily() { require_once( ABSPATH . 'wp-admin/includes/admin.php' ); if( ! function_exists( 'wpmu_delete_blog' ) ) return; $all_blogs = wp_get_sites(); $blogs_to_keep = array( 1, 2 ); foreach ( $all_blogs as $key => $val ) { if ( ! in_array( $val['blog_id'], $blogs_to_keep ) ) { wpmu_delete_blog( $val['blog_id'], TRUE ); } } }