2016-06-13 36 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未设置或设置为不正确的值。