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 に答える