web-dev-qa-db-ja.com

コメント投稿者が登録されているか確認する

それは簡単なはずですが、私はいくつかのコードを試しました、どれもトリックをしません。 Googleで検索したところ、何もない。コメントの作成者が登録ユーザーであるかどうかを確認してください(そのため、コードを追加できます)。登録されていない場合は、何も表示しません。

これでif( empty($comment_author_nickname) && empty($comment_author_email) )のトリックができますが、その情報を取得する方法がわかりません

ありがとうございました

5
whitelord

あなたがこの種のチェックを意味するのだろうか。

if( $comment->user_id > 0 ) {
    // Registered comment author
} 

あなたのコメントのテンプレートコールバックに。

これはwp-comments-post.phpファイルで決定されます。

$commentdata = compact('comment_post_ID', ..., 'user_ID' );
$comment_id = wp_new_comment( $commentdata );

しかし、user_ID変数がどこから来たのかは明らかではありません。この変数はそのファイルで定義されていないからです。

そのため、これは実際にはグローバル変数$user_IDまたは$GLOBALS['user_ID']を背後で使用しています;-)

4
birgire

これを行うための安全で信頼できる方法はないと思います。私の正直な意見では、これも私が落胆することです

私の最大の懸念はここにあります

  • すでに登録されているメンバーの詳細と一致する可能性のある偽のEメールまたはニックネームを誰でも入力できます

  • これを行うことによって、未登録のユーザーは、登録済みメンバーの詳細にアクセスできる可能性があります。

  • コメントフォームに入力された情報をすべての登録メンバーからの情報と照合するためにどのような方法を使用しますか

溶液

これを達成するためのあなたの最善かつ最も安全な方法は、彼らが既に登録されたメンバーであるならば、ログインをユーザーに促すことです。これとは別に、私が言ったように、私はこれを達成するための他の安全で信頼できる方法を見ることができません。

1
Pieter Goosen