我想建立一个WordPress多站点以下功能安装:计数用户博客此前Worpdress登录重定向
- 在登录执行一个用户(少主的一员博客的数量Wordpress站点)被计数,然后 -
- 如果用户是多个站点的成员,他们将被定向到一个网关页面,在那里他们可以选择他们想要访问的站点。
- 如果用户只有一个站点的成员,那么他们会直接重定向到该站点。
我写了下面的代码,它在一定程度上起作用。当用户登录时,他们当前被定向到他们的主要博客,如果他们再次登录(即使他们已经登录),他们将被重定向到网关,这表明博客的数量在初始登录时不起作用。有没有人对我如何解决这个问题有任何建议?
/*Redirect After Login on front end*/
function primary_login_redirect($redirect_to, $request_redirect_to, $user)
{
if ($user->ID != 0)
{
$user_info = get_current_user_id();
//Get number of blogs from user
//$blogs = get_blogs_of_user($user_info);
// if($blogs > 1) {
$user_blogs = get_blogs_of_user($user_info);
$result = count($user_blogs);
if ($result > 1){
$primary_url = 'https://xxxyyyzzz.com/gateway-page/';
if ($primary_url) {
wp_redirect($primary_url);
die();
}
} else {
$user_info = get_userdata($user->ID);
if ($user_info->primary_blog) {
$primary_url = get_blogaddress_by_id($user_info->primary_blog) . 'home/';
if ($primary_url) {
wp_redirect($primary_url);
die();
}
}
}
return $redirect_to;
}
}
add_filter('login_redirect','primary_login_redirect', 100, 3);
'if(($ result - “1”)>“1”){'< - 这是你的问题。如果用户有2个博客,则不会通过。另外你用字符串混合整数,坚持一种类型。我想也许你打算使用'if($ result> 1){'? – Jeemusu
感谢您的输入,您对整数正确但恐怕仍然无效,博客似乎不会被计入登录,我更新了代码以反映您的更改 – user1419810
在这种情况下你需要开始调试。在$ user_blogs变量声明之后执行'print_r($ user_blogs); die();'。然后登录并查看您是否获得了预期的输出。 – Jeemusu