WordPress MultiSite 中博客所有者的用户 ID
User ID of a Blog Owner in WordPress MultiSite
我正在创建一个函数,该函数将采用 $blog_id
和 return 多站点网络中 owns/created 博客用户的相应 $user_id
.
public function SelectOwnerUserIdFromBlogId( $blog_id ) { ... }
我一直在查看数据库,我能找到的最接近的东西是查看 wp_usermeta table 并过滤功能,但这感觉太老套了。有更好的主意吗?
SELECT user_id as UserId,
IF(SUBSTRING_INDEX(SUBSTRING_INDEX(meta_key, '_', 2), '_', -1) = 'capabilities', 1, SUBSTRING_INDEX(SUBSTRING_INDEX(meta_key, '_', 2), '_', -1)) as BlogId
FROM wp_usermeta
WHERE meta_key like '%_capabilities'
AND meta_value like '%administrator%'
我想我明白了这个问题。只需替换 WHERE 条件中的 blog_id 即可获得所需的用户 ID。
SELECT meta_value as UserId
FROM wp_blogs b
JOIN wp_sitemeta sm
ON sm.site_id = b.site_id and sm.meta_key = 'admin_user_id'
WHERE b.blog_id = 2
我是这样做的:
挂钩 wpmu_new_blog 操作,该操作将在创建新网站时触发。
在您的函数中,执行以下操作:
add_site_option( 'site_author', $user_id );
网站作者现在将被添加到网站选项中。
之前不能说什么,但从当前版本(4.9.7)开始,您可以使用网络选项来实现这一点。
add_action('wpmu_new_blog', 'record_site_operator', 10, 2);
function record_site_operator($blog_id, $user_id) {
update_network_option(NULL, 'site_operator_'.$site_id, $user);
}
你可以这样做:
// replace 2 with ID of site you want to use.
$target_id = 2;
$alluser = get_users(
array( 'blog_id' => $target_id,
'fields' => array( 'ID' ),
'exclude' => array( 1), // excluding 1 because it's super admin of network
)
);
$alluser 拥有属于站点 ID 2 的所有用户的 ID。
我正在创建一个函数,该函数将采用 $blog_id
和 return 多站点网络中 owns/created 博客用户的相应 $user_id
.
public function SelectOwnerUserIdFromBlogId( $blog_id ) { ... }
我一直在查看数据库,我能找到的最接近的东西是查看 wp_usermeta table 并过滤功能,但这感觉太老套了。有更好的主意吗?
SELECT user_id as UserId,
IF(SUBSTRING_INDEX(SUBSTRING_INDEX(meta_key, '_', 2), '_', -1) = 'capabilities', 1, SUBSTRING_INDEX(SUBSTRING_INDEX(meta_key, '_', 2), '_', -1)) as BlogId
FROM wp_usermeta
WHERE meta_key like '%_capabilities'
AND meta_value like '%administrator%'
我想我明白了这个问题。只需替换 WHERE 条件中的 blog_id 即可获得所需的用户 ID。
SELECT meta_value as UserId
FROM wp_blogs b
JOIN wp_sitemeta sm
ON sm.site_id = b.site_id and sm.meta_key = 'admin_user_id'
WHERE b.blog_id = 2
我是这样做的:
挂钩 wpmu_new_blog 操作,该操作将在创建新网站时触发。
在您的函数中,执行以下操作:
add_site_option( 'site_author', $user_id );
网站作者现在将被添加到网站选项中。
之前不能说什么,但从当前版本(4.9.7)开始,您可以使用网络选项来实现这一点。
add_action('wpmu_new_blog', 'record_site_operator', 10, 2);
function record_site_operator($blog_id, $user_id) {
update_network_option(NULL, 'site_operator_'.$site_id, $user);
}
你可以这样做:
// replace 2 with ID of site you want to use.
$target_id = 2;
$alluser = get_users(
array( 'blog_id' => $target_id,
'fields' => array( 'ID' ),
'exclude' => array( 1), // excluding 1 because it's super admin of network
)
);
$alluser 拥有属于站点 ID 2 的所有用户的 ID。