1

我这里发生了一件奇怪的事情。尝试在多种情况下实现is_wp_error,但都失败了。事情是这样的,我最后一次尝试说明了这一点:

我想通过 登录用户wp_signon(),检查是否有错误,如果有,显示它们。

所以我写了以下几行代码:

$user = wp_signon(); 
if(is_wp_error($user)){
     $result = 'Error-' .
     $user->get_error_message(); 
} else {
    $result = 'Login succeed'; 
} 
echo $result;

奇怪的是,is_wp_error()不返回 false (所以有一个错误)。但是$user->get_error_message();是空的。

尝试了不同的动作。调试时,echo is_wp_error();返回 0。 var_dump(wp_is_error());返回空数组。

此外,即使给出了有效的凭据,is_wp_error() 仍然返回 true。同样在其他情况下进行测试时(以及在干净的 WP 安装上)

有什么想法吗?

4

1 回答 1

1

我浏览了wp_signon()代码(位于http://core.trac.wordpress.org/browser/tags/3.5/wp-includes/user.php#L0

如果传入空白的用户名或密码,则错误似乎会被清除。(该文件的第 56 和 57 行。)

于 2013-01-03T23:11:51.850 回答