【问题标题】:How to get all admins of multisite in wordpress如何在 wordpress 中获取多站点的所有管理员
【发布时间】:2017-10-30 07:02:27
【问题描述】:

如何在 wordpress 中获取多站点的所有管理员。 我为此创建自定义插件 我被困在自定义代码中,以获取主网站中多站点的所有管理员。 例如。我的主要网站是:wyz.com,我的第二个网站是:xyz.com/demo。 主网站管理员是“abc”,“xyz.com/demo”网站管理员是“abcde”。 现在我如何在我的主网站中获得“abcde”管理员。

在我的实时站点中,我目前有 6k 管理员。所以我很难得到这个。我是多站点 wordpress 的新手。

【问题讨论】:

    标签: wordpress customization multisite


    【解决方案1】:

    要从任何子站点获取数据,您首先需要使用switch_to_blog() 函数切换到该站点。然后,无论您发起什么查询,它都只会提供来自该站点的记录。从子站点获取数据后,不要忘记将其还原到当前站点。您可以使用restore_current_blog() 函数恢复它。

    要获取所有站点的所有管理员用户,您需要执行以下操作:

    1) 使用wp_get_sites()函数获取所有站点的blog_id。

    2) 获得 blog_id 后,您需要执行以下循环来获取每个站点的管理员用户。

    假设您从wp_get_sites() 函数中获得$blog 作为blog_ids 的数组

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-01
      • 2023-01-30
      • 2015-06-11
      • 2011-03-22
      • 2011-04-25
      • 2019-02-26
      相关资源
      最近更新 更多