Как получить всех администраторов мультисайта в wordpress

Как получить всех администраторов мультисайта в wordpress. Я создаю собственный плагин для этого. Я застрял в пользовательском коде, чтобы получить всех администраторов мультисайта на основном веб-сайте. напр. мой основной сайт: wyz.com и мой второй сайт: xyz.com/demo. администратор основного веб-сайта — «abc», а администратор сайта «xyz.com/demo» — «abcde». Теперь, как я получаю администратора «abcde» на своем основном сайте.

На моем живом сайте у меня сейчас 6 тысяч администраторов. Так что мне трудно получить это. Я новичок в многосайтовом wordpress.


person kalpana devi    schedule 30.10.2017    source источник


Ответы (1)


Чтобы получить данные с любого из дочерних сайтов, вам сначала нужно переключиться на этот сайт с помощью switch_to_blog()< /а> функция. Тогда какой бы запрос вы ни запустили, он даст записи только с этого сайта. Не забудьте восстановить его на текущий сайт, как только вы получите данные с дочернего сайта. Вы можете восстановить его с помощью функции restore_current_blog().

Чтобы получить всех пользователей-администраторов всех сайтов, вам необходимо выполнить следующие действия:

1) Используйте функцию wp_get_sites(), чтобы получить blog_id всех сайтов.

2) Как только вы получите blog_id, вам нужно выполнить следующий цикл, чтобы получить администратора каждого сайта.

Предположим, что вы получаете $blog как массив blog_ids из функции wp_get_sites()

foreach ($blogs as $blog) 
    {
        switch_to_blog( $blog->blog_id ); // blog id which u got from wp_get_sites() function
        $users_query = new WP_User_Query( array( 
                    'role' => 'administrator', 
                    'orderby' => 'display_name'
                    ) );  // query to get admin users
        $results = $users_query->get_results();
        $site_admins .= 'Blog ID: ' . $blog->blog_id . '<pre>' . print_r($results,true) . '</pre>';
    }
    restore_current_blog();
person AddWeb Solution Pvt Ltd    schedule 30.10.2017