2017-10-30 8 views
0

wordpress에서 multisite의 모든 관리자를 얻는 방법. 나는 이것을위한 커스텀 플러그인을 만들고있다 메인 웹 사이트에서 멀티 사이트의 모든 관리자를위한 커스텀 코드에 빠져있다. 예 : 내 주요 웹 사이트는 : wyz.com이고 두 번째 사이트는 xyz.com/demo입니다. 기본 웹 사이트 관리자는 "abc"이고 "xyz.com/demo"사이트 관리자는 "abcde"입니다. 이제 메인 웹 사이트에서 "abcde"관리자 권한을 얻습니다.wordpress에서 multisite의 모든 관리자를 얻는 방법

내 라이브 사이트에는 현재 6k 명의 관리자가 있습니다. 그래서 나는 이것을 얻기가 어렵다. 나는 multisite wordpress에서 새롭다.

답변

0

하위 사이트에서 데이터를 가져 오려면 먼저 switch_to_blog() 기능을 사용하여 해당 사이트로 전환해야합니다. 그러면 어떤 쿼리가 실행 되든 해당 사이트의 레코드 만 제공합니다. 하위 사이트에서 데이터를 얻으면 현재 사이트로 복원하는 것을 잊지 마십시오. restore_current_blog() 기능을 사용하여 복원 할 수 있습니다.

모든 사이트의 모든 관리 사용자를 얻으려면, 당신은 다음을 수행해야합니다

1) 모든 사이트의 blog_id를 얻을 수 wp_get_sites() 기능을 사용합니다.

2) blog_id를 받으면 다음 루프를 수행하여 각 사이트의 관리자를 얻으십시오.

wp_get_sites() 함수에서 blog_ids의 배열로 $blog를 얻을 수 있다고 가정

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();