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.'さんは既に登録済みのようです。会員の方でしたら、ログインしてからコメントしてください' );
}
}
}
?>