2013-01-03 46 views
1

我有一个奇怪的发生在这里。试图在多种情况下实现is_wp_error,但失败。以下是我的最后一次尝试所示:WordPress的:不能派生错误

我想通过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()不返回错误(所以有错误)。但$user->get_error_message();为空。

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

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

有什么想法?

回答

1

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

看起来就像如果一个空白的用户名和密码在传递错误被削除一看。(线56和该文件的57)。

+0

谢谢。编辑我的问题;当一切真的有效时,错误仍然会发生,足够奇怪。 而我在Codex中可以看到,什么都没有通过时,应该有一些消息。它应该是一个错误呢?很难想象... –

+0

另一个说明:这确实解决了这个问题。原来,你必须检查错误而不是空()。谢谢! –