Esta modificação em seu WordPress irá checar se o nome ou e-mail usado pelo usuário que comenta sem estar logado é igual ao de algum usuário registrado nele.
Primeiro, teremos a checagem se o autor do comentário está logado. Se não estiver, o nome e email serão comparados com os registrados no banco de dados. Se for igual, o comentário será bloqueado e uma mensagem escolhida por você será mostrada ao usuário.
Vale lembrar que o script é case-sensitive (Difere maíusculas de minúsculas). Esta modificação foi testada do WordPress 2.2 ao 2.7+
Instruções
1) Abra o arquivo /wp-comments-post.php para edição (um backup antes disso é sempre bem-vindo.. vai que algo dá errado) 2) Ache o seguinte trecho de código:
1234 $comment_author = trim(strip_tags($_POST['author']));$comment_author_email = trim($_POST['email']);$comment_author_url = trim($_POST['url']);$comment_content = trim($_POST['comment']);
3) Depois do trecho acima, adicionem o trecho de código que temos logo abaixo:
1234567891011121314151617181920212223242526272829303132333435363738394041 // get list of user (display) names for blogglobal $wpdb;$valid_users = (array)$wpdb->get_results("SELECT display_name, user_email FROM " . $wpdb->prefix . "users");// get ID of logged in user (if there is one)global $userdata;get_currentuserinfo();$logged_in_name = $userdata->ID;$logged_in_email = $userdata->user_email;// see if the comment author matches an existing author$found_match = FALSE;foreach ($valid_users as $va) {if (trim($va->display_name) != '') {if (strtolower($va->display_name) == strtolower($comment_author)) {$found_match = TRUE;break;}}if (trim($va->user_email) != '') {if (strtolower($va->user_email) == strtolower($comment_author_email)) {$found_match = TRUE;break;}}}// if commenter is not logged in, but match was found, block the commentif (trim($logged_in_name) == '') {if ($found_match == TRUE) {wp_die( __('Voce nao pode deixar comentários com o nome ou email de umusuário registrado no site.Caso seja você mesmo, efetue seu login.') );}}
4) Salve o arquivo e o feche
Notas
Para testar esta modificação, simplesmente se desconecte e tente postar um comentário usando o nome de usuário ou e-mail que você mesmo tem registrado. Se quiser alterar a mensagem exibida, altere o texto entre aspas na seguinte linha:
1234 wp_die( __('Voce nao pode deixar comentários com o nome ou email de umusuário registrado no site.Caso seja você mesmo, efetue seu login.') );
3 pessoas comentaram o artigo
Isso já devia fazer parte da instalação básica do WordPress, né?
Concordo Thiago,
Ainda bem que, pra nossa sorte, o WordPress é opensource, assim todos podem detectar suas falhas e as corrigir e aprimorar o sistema :)
Abraços !
Boa orientação, valeu abraço.