web-dev-qa-db-ja.com

コメント内容とともにログイン認証情報を送信する

最初にログインしてからコメントを投稿するのではなく、ユーザーが自分のコメントと共にWordPressログイン資格情報を送信できるようにしたいと思います。私はここでどこに引っ掛かるべきか本当によくわからない、そしてどんな助けでも大いに感謝されるであろう。

私の基本的な計画は、ユーザーのログインを取得して(そしてコメントを)渡し、(おそらくpreprocess_commentの間に)ユーザーをログインさせ、それからコメントオブジェクトにユーザーIDなどを与え、それから全てを通常通り実行させます。しかし、そうすることによってある種の悪用に自分自身を開放しているのではないかと思います。私はWordPressが理由でログインフォームを持っていることを理解しています、そして私は公式フォームを通らずにユーザーをログインさせるのをためらっています。

1

適切な認証情報を使用してwp_signonを呼び出すだけで、ユーザーを安全にログインできます。 WPがユーザーのCookieを正しく設定できるように、これは出力が生成される前に行われる必要があります。

例:

$user = wp_signon(array('user_login'=>'example', 'user_password' = > 'swordfish'));

それはサイトのフロントエンドから適切なログインをし、クッキーを設定し、そしてユーザオブジェクトを返します。その後、$ commentdata ['user_id'] = $ user-> IDを設定して戻ることができ、それに応じてコメントが処理されます。

認証に失敗すると、代わりにWP_Errorオブジェクトが返されるため、結果にis_wp_errorを使用して、返されたWP_ErrorオブジェクトかWP_Userオブジェクトかを確認します。

0
Otto