Protegendo o nome de usuários registrados em seu WordPress

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:

$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:

// get list of user (display) names for blog
global $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 comment
if (trim($logged_in_name) == '') {
  if ($found_match == TRUE) {

wp_die( __('Voce nao pode deixar comentários com o nome ou email de um
 usuá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:

wp_die( __('Voce nao pode deixar comentários com o nome ou email de um
 usuário registrado no site.

 Caso seja você mesmo, efetue seu login.') );

Posts Similares

  • Como exibir o número total de comentários em seu blog WordPress?

    Se você tem um site e compartilha conteúdo relevante para pessoas de seu nicho, receber comentários é uma das melhores formas de medir a popularidade de seu site quanto a qualidade das matérias publicadas. Se o seu blog tem muitos comentários, pode ser dizer que o seu blogs é popular, pelo menos as pessoas gostam…

  • Veja todas as novas funções do WordPress 3.8

    A cada nova versão do WordPress, novas funções interessantes vão surgindo. Vamos ver TODAS as novas funções do WordPress? A explicação de cada uma está em inglês, mas aos poucos vamos traduzindo para vocês 😉 get_theme_update_available Retrieve the update link if there is a theme update available. Will return a link if there is an…

  • Fazendo backup de seus posts via ferramentas WordPress

    Por algumas vezes percebi que o WordPress mostra-se inconsistente quando fazemos algumas alterações, principalmente se estas alterações interferem no Banco de Dados. Como alguns serviços de hospedagem não permitem fazer o backup do banco de dados MySQL, ou não permitem a importação do backup, é aconselhável de tempos em tempos fazermos backup’s de nossas postagens,…

  • Como excluir uma categoria do feed RSS

    Temos o seguinte cenário: em um blog WordPress, temos uma categoria que não deve ser exibida via RSS.. como proceder para que tal categoria seja removida ? Simples ! Adicione a função abaixo no arquivo functions.php function myFilter($query) { if ($query->is_feed) {  $query->set(‘cat’,’-5′); } return $query; } add_filter(‘pre_get_posts’,’myFilter’); Lembre-se de alterar o id da categoria…

  • Não tema as atualizações automáticas do WordPress 3.7

    Após o lançamento do WordPress 3.7, muitas reações diferentes puderam ser observadas sobre as atualizações automáticas. De ‘Eu quero o controle das minha atualizações’ à ‘Essa atualização automática do WordPress 3.7 quebrou alguma coisa no meu site’, alguns relatos mostram que alguns usuários não estão preparados para deixar o sistema “se melhorar” sozinho. Para quebrar…

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

3 Comentários