2013-01-03 45 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

另一個說明:這確實解決了這個問題。原來,你必須檢查錯誤而不是空()。謝謝! –