为什么if语句条件在比较数组

时间:2016-06-13 09:42:05

标签: php wordpress

我遇到了问题,这是我的代码,目标是登录后重定向到一个或另一个页面。

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;
}

它总是返回第一个链接(我有两个用户,这些是'kundenumber'字段的var转储)

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

3 个答案:

答案 0 :(得分:2)

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

所以你需要将第三个参数设置为true才能获得value而不是array

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

答案 1 :(得分:0)

get_user_meta()返回一个数组。您将整个数组与空字符串进行比较。您应该将数组中的字符串与if ($meta[0] == '')

之类的空字符串进行比较

答案 2 :(得分:0)

这意味着$ meta为空。空$ meta有两种可能性 - 1)使用错误的密钥。 2)$ user_id未设置或设置为不正确的值。