2016-06-13 44 views
0

我有一個問題比較值當語句條件不工作,這是我的代碼和它的目標是,登錄後重定向到一個或另一個頁面。爲什麼如果從陣列

function my_login_redirect(){ 
    $current_user = wp_get_current_user(); 
    $user1 = $current_user->ID; 
    $meta = get_user_meta($user1, 'kundenumber'); 

    if ($meta == ''){ 
    // return the url that the login should redirect to 
    $var = 'http://www.example1.com'; 
     }else { 
    $var = 'http://www.example2.com'; 
    } 

    return $var; 
} 

它總是返回第一個鏈接(我有兩個用戶,這些都是他們的VAR轉儲「kundenumber」字段)

array(1) { [0]=> string(0) "" } 
array(1) { [0]=> string(6) "123456" } 

回答

2

https://codex.wordpress.org/Function_Reference/get_user_meta

所以你需要設置第三個參數爲真得到value不是array

$meta = get_user_meta($user1, 'kundenumber', true); 
+0

當我把它設置爲true我得到INT(2)當我這樣做的var_dump(第二用戶(2排列)) – OunknownO

+0

根據文檔設置** **第三參數去真後,您會收到空字符串爲第一個用戶,'123456'爲第二個用戶。你確定你改變了第三個參數嗎?顯示var_dump($ meta)的exaclty結果;對於兩個用戶 – nospor

+0

第一是串(0)「」和第二個是串(6)「123456」。你是正確的,但之前'回報是$ var它仍然重定向到第一個站點 – OunknownO

0

get_user_meta()返回一個數組。您將整個數組與一個空字符串進行比較。你應該數組中的字符串比較空字符串像if ($meta[0] == '')

0

這意味着$元是空的。有兩種可能性:$ meta - 1)使用錯誤的鍵。 2)$ user_id未設置或設置爲不正確的值。