Como exibir publicamente o número de comentários de cada pessoa no WordPress

Como autor do blog eu já tenho instalado há anos um plugin que me mostra isso nas páginas de administração. É bom ser lembrado do nível de engajamento de cada leitor antes de prosseguir. Mas eu queria exibir isso publicamente e a única opção “simples” que achei foi o plugin Comment Counter que tem muita coisa contra ele:

  • Atualizado pela última vez há oito anos;
  • Apenas 70 instalações registradas;
  • Nenhuma avaliação;
  • Você ainda precisa editar manualmente;
  • Não diz onde você tem que editar manualmente.

Tem tanta coisa contra o plugin que se você pesquisar pelo nome dele na página de adicionar plugins do blog não encontra, apesar de não existirem outros com o mesmo propósito nem com nomes parecidos. É preciso procurar por “Comment Counter Ocean90”.

Mas apesar de tanta coisa contra ele, era o único e estou pouco me lixando para o fato de um software não ser atualizado há oito anos. Decidi arriscar. E só tive dificuldade porque entendo pouco de WordPress e muito menos de PHP.

O procedimento por alto é o seguinte:

  • Instale o plugin;
  • Insira <?php wp_list_comments(); ?>  na função callback que exibe os comentários, no lugar onde você quer que apareçam;

Como achar essa função callback?

Essa é a parte mais difícil do processo para quem, como eu, só mexe com o wordpress uma vez a cada alinhamento planetário.

  • Comece abrindo o arquivo comments.php do seu tema;
  • Nele você vai encontrar a função wp_list_coments. Um dos parâmetros dessa função é a função “callback”. No meu caso ela se chama “bfa_comments”. Confira na linha 8:

  • Procure por essa função nos arquivos do tema. Como eu uso o tema Atahualpa, o arquivo é bfa_custom_comments.php.
  • Observando a função você vai ver como a caixa de comentário é construída. Escolha o lugar mais apropriado para você e insira o código que chama o plugin. No exemplo abaixo eu mostro a inserção na linha 16;

Não é de admirar que o plugin não faça isso automaticamente. Deve ser mais difícil para um programa fazer isso de forma confiável que todo o resto.

Mas é realmente muito simples quando você sabe fazer. O resultado você pode ver aqui no blog:

wordpress_comments_count_ryan.com.br

 

 

Eu também tive que editar o arquivo do plugin (comment_count.php) porque “Comentários” estava escrito em alemão, mas depois que você chega aqui, ter que editar o plugin é bobagem. Note que fui obrigado a usar entidades HTML Coment&aacute;rio para a acentuação aparecer corretamente.

Por default o plugin conta pelo endereço de email de quem comenta, mas você pode mudar esse e outros parâmetros editando a variável “$args” como mostrado na documentação do plugin. Como o default está bom para mim eu não vou abordar isso aqui agora mas o modo mais “simples” de fazer isso globalmente é editando diretamente a função comment_counter no arquivo do plugin.

Como contar pelo endereço de email lidando com comentários que não tem endereço de email

Esse é um caso incomum porque por default todo mundo tem que preencher um endereço de email ao comentar no wordpress. Tão incomum que o autor do plugin não levou em conta. Mas acontece e aí todo mundo nessa situação vai aparecer com a mesma contagem porque para o plugin todos são um cara com o endereço de email “”.

Se não acredita, veja os comentários.

Eu contornei fazendo as seguintes modificações no plugin:

e

Na primeira caixa foram acrescentadas as linhas 3, 4 e 12. Na segunda, a linha 1.

 

 

16 comentários
  • Jefferson - 6.606 Comentários

    Encontrei um problema. Todo comentário que foi importado do Buzz não tem email definido e por isso todo mundo nessa condição tem “3907 comentários”.

  • Luciano - 489 Comentários

    É… então não é beeeem um problema do plugin e sim da importação dos comentários que veio sem e-mail, né? B)

    • Jefferson - 6.606 Comentários

      Sim, mas é um problema também do plugin ao achar que “” é um endereço de email.

      A propósito, posso unificar seus endereços de email no banco de dados? Você tem posts usando sua conta BOL que não fazem parte da contagem. E *acho* que você não participou no buzz.

      • Luciano - 489 Comentários

        Pode unificar sim, mas eu nunca tive email do BOL, eu acho que usava um do POP. Se tiver comentário perdido meu com algum outro email pode unificar tudo.

        Quanto ao Buzz, eu participava sim. Vá até este post aqui:

        https://ryan.com.br/blogs/quicktalk/2011/10/fonte-atx-automatica-por-um-preco-razoavel/

        Olha eu no segundo comentário lá. :lol:

        Quanto ao plugin achar que “” é um email, isso resolve molezinha com um filtro no PHP, verificando se o campo vem vazio, ignora a contagem.

        Gostei do plugin, vou pendurar ele aqui na lista de coisas a modificar numa futura mexidela que estou querendo fazer no meu blog, tem umas coisas lá que estão me irritando a cada update do WordPress.

      • Luciano - 489 Comentários

        Ah… lembrando que, o admin comment count eu ja uso a anos também. B)

      • Luciano - 489 Comentários

        Ai que falta faz uma opção de editar os comentários eheheh… outra não sei se isso já vai acontecer automaticamente quando você unificar os emails, mas se não acontecer, e quiser setar o avatar, pode usar este que está aparecendo.

        • Jefferson - 6.606 Comentários

          Ai que falta faz uma opção de editar os comentários eheheh…

          Eu desativei ontem um plugin de edição de comentários que estava ativo há anos porque não consegui ver funcionar. Estava ativo para você?

          não sei se isso já vai acontecer automaticamente quando você unificar os emails,

          É inteiramente automático baseado na sua conta no Gravatar. Não conheço modo de definir manualmente um avatar para cada pessoa que comenta.

          • Luciano - 489 Comentários

            Comentando tudo aqui num só.

            1) Quanto ao google mudar a URL do perfil, bem… isso não me srpreende, o google é a pior empresa que eu conheço que adora quebrar a compatibilidade das coisas, tanto que eu já passei a evitar ao máximo possível serviços do google, uso só o que não tem jeito mesmo, pois enche os picuás cada vez que eles resolvem atualizar alguma coisa e quebram toda a API anterior.

            Esses dias atrás mesmo tive que mexer no plugin que faz o login social, e adivinha quem que estava não funcionando???

            2) Não aparecia aqui pra mim a opção de editar, bem… pode ser porque normalmente eu não faço login, eu comento só usando nome e email.

            3) Ah certo, se está usando o serviço do Gravatar, beleza! Achei que você iria ter que fazer alguma gambiarra pra unificar, mas se só acrescentou o email no lugar essas url antigas do google, ótimo!

            • Jefferson - 6.606 Comentários

              Pelo menos os três URLs ainda funcionam! O que é muito decente e até inesperado vindo da Google. Mas o meu banco de dados não sabe que é tudo a mesma coisa.

  • Jefferson - 6.606 Comentários

    Já resolvi o problema editando o plugin. Agora “” no campo de email não é mais levado em conta.

  • Snow_man - 309 Comentários

    fui ver minha contagem, não tem :'(

    btw: inicialmente usava a conta do gmail, depois passei a usar um genérico, talvez
    seja por isso; Jefferson sabe qual é :D

    • Jefferson - 6.606 Comentários

      Homem de Neve, você está usando um endereço falso. Isso cria problemas para o funcionamento do blog.

      Eu respeito o direito ao anonimato de todo mundo, especialmente em casos como o seu, que não está usando o anonimato para tumultuar (por isso eu nunca reclamei), mas eu tenho que tomar medidas para evitar os problemas causados pelo endereço falso no servidor.

  • Jefferson - 6.606 Comentários

    Aparentemente o plugin só funciona até a versão 5.2 do PHP. Ao mudar para as versões 5.3 ou 5.4 dois erros são exibidos no lugar da contagem:

    Warning: explode() expects parameter 2 to be string, array given in …/plugins/comment-counter/comment_count.php on line 65

    Warning: array_intersect(): Argument #1 is not an array in …/plugins/comment-counter/comment_count.php on line 65

    Porblema aparentemente resolvido mudando o conteúdo da linha

    para:

  • Jefferson - 6.606 Comentários

    Agora o plugin só está mostrando a contagem pelo URL em vez de pelo email. Depois eu conserto isso.

Deixe um comentário

Você pode usar estas tags HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  

  

  

:) :( ;) O_o B) :lol: :huh: :S :D :-P 8-O :yahoo: :rtfm: :dashhead1: :clapping: more »