WordPressにログインしない状態で、ユーザーや管理者を偽装してコメントの返信を行われた場合、外部の人からは、それがブログのユーザーからのコメントなのか、偽装したコメントなのか 見分けがつきません。
未ログイン状態でコメントを送信した時に、フィールドの名前に、ブログのユーザー名が使用された場合、そのコメントを破棄するというアイディアです。
テーマの、functions.php等にコードを追加します
<?php /** * http://codex.wordpress.org/Function_Reference/get_users * * これは、サンプルコードです。 * 十分検証されていませんので、ご自身で検証する必要があります。 */ add_action( 'pre_comment_on_post', 'nobita_comment_only_form'); function nobita_comment_only_form(){ /** * コメントを確認+ログインしていないことも確認 * * * */ if ( isset($_POST['comment']) && $_POST['author'] && !is_user_logged_in() ) { /** * コメントの投稿者を取得 * * * */ $author = esc_sql( $_POST['author'] ); /** * コメントの投稿者が、既にユーザーに含まれるかどうかを検索 * * * */ $blogusers= get_users('search='. $author); /** * コメントの投稿者が、既に存在していれば、コメントを中止 * * * */ if( ! empty( $blogusers ) ){ /** * メッセージを表示して終了 * * * */ wp_die( $author.'さんは既に登録済みのようです。会員の方でしたら、ログインしてからコメントしてください' ); } } } ?>