5

Wordpressのインストールにカスタムページがあります。これにより、ユーザーはフロントエンドから自分の電子メールアドレスを表示および変更できます。

ただし、そうすると、電子メールはDBで正しく変更されますが、別の更新(の有無にかかわらず$_POST)が行われるまでページ上で更新されません。この振る舞いは本当に奇妙で、原因を見つけることができません。

コードの問題のある部分は次のとおりです。

if ( !empty( $_POST['user_email'] ) )
    wp_update_user( array ('ID' => $queried_user->id, 'user_email' => esc_attr( $_POST['user_email'] ) ) ) ;

を実行するvar_dump($_POST)var_dump($queried_user)、それが変数にuser_email正しく表示され$_POSTますが、したがって、変数には古いものが残り$queried_userます。ただし、PHPMyAdminを介してDBを見ると、データがすでに更新されていることがわかります。ブラウザページをもう一度更新すると、すべてが正しく表示されます。

ポインタはありますか?

4

1 に答える 1

4

$ queried_userにどのようにデータを入力しているかはわかりませんが、次のことを試してください。

if ( !empty( $_POST['user_email'] ) )
{
   $queried_user->user_email=$_POST['user_email'];
   wp_update_user( array ('ID' => $queried_user->id, 'user_email' => esc_attr( $queried_user->user_email ) ) ) ;
}
于 2012-11-21T16:46:29.910 に答える