我想建立一個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