X

Como Rastrear Visualizações de Posts Sem um Plugin Usando Metadados de Post

Snippets por IsItWP

Você está procurando uma maneira de rastrear visualizações de posts sem um plugin usando metadados de post? Embora provavelmente exista um plugin para isso, criamos um snippet de código rápido que você pode usar para rastrear visualizações de posts sem um plugin usando metadados de post no WordPress.

Instruções:

Adicione este código ao arquivo functions.php do seu tema ou a um plugin específico do site:

function getPostViews($postID){
    $count_key = 'post_views_count';
    $count = get_post_meta($postID, $count_key, true);
    if($count==''){
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, '0');
        return "0 View";
    }
    return $count.' Views';
}
function setPostViews($postID) {
    $count_key = 'post_views_count';
    $count = get_post_meta($postID, $count_key, true);
    if($count==''){
        $count = 0;
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, '0');
    }else{
        $count++;
        update_post_meta($postID, $count_key, $count);
    }
}

// Remove issues with prefetching adding extra views
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0); 

Opcionalmente, adicione este código também a uma coluna no painel do WordPress que exibe as visualizações do post:

// Add to a column in WP-Admin
add_filter('manage_posts_columns', 'posts_column_views');
add_action('manage_posts_custom_column', 'posts_custom_column_views',5,2);
function posts_column_views($defaults){
    $defaults['post_views'] = __('Views');
    return $defaults;
}
function posts_custom_column_views($column_name, $id){
	if($column_name === 'post_views'){
        echo getPostViews(get_the_ID());
    }
}

Esta parte do código de rastreamento de visualizações definirá as visualizações do post. Basta colocar este código abaixo dentro do arquivo single.php dentro do Loop do WordPress.

<?php
          setPostViews(get_the_ID());
?>

Observação sobre cache de fragmentos: Se você estiver usando um plugin de cache como o W3 Total Cache, o método acima para definir visualizações não funcionará, pois a função setPostViews() nunca seria executada. No entanto, o W3 Total Cache possui um recurso chamado cache de fragmentos. Em vez do acima, use o seguinte para que setPostViews() seja executado corretamente e rastreie todas as suas visualizações de post, mesmo quando o cache estiver ativado.

<!-- mfunc setPostViews(get_the_ID()); --><!-- /mfunc -->

O código abaixo é opcional. Use este código se você quiser exibir o número de visualizações dentro de seus posts. Coloque este código dentro do Loop.

<?php 
          echo getPostViews(get_the_ID());
?>

Observação: Se esta é a primeira vez que você adiciona trechos de código no WordPress, consulte nosso guia sobre como copiar / colar trechos de código corretamente no WordPress, para não quebrar acidentalmente seu site.

Se você gostou deste trecho de código, considere conferir nossos outros artigos no site, como: 10 melhores plugins de depoimentos do WordPress e como configurar o rastreamento de autores no WordPress com o Google Analytics.

Comentários   Deixe uma resposta

  1. Você poderia me ajudar a estilizar a saída do echo? Quero colocar a contagem de visualizações no meu loop e consegui isso perfeitamente, mas como adiciono um CSS à saída para o texto? Alguma ideia sobre isso. Obrigado

  2. Você poderia me ajudar a estilizar a saída do echo? Quero colocar a contagem de visualizações no meu loop e consegui isso perfeitamente, mas como adiciono um CSS à saída para o texto? Alguma ideia sobre isso. Obrigado

  3. Você poderia me ajudar a estilizar a saída do echo? Quero colocar a contagem de visualizações no meu loop e consegui isso perfeitamente, mas como adiciono um CSS à saída para o texto? Alguma ideia sobre isso. Obrigado

  4. Você poderia me ajudar a estilizar a saída do echo? Quero colocar a contagem de visualizações no meu loop e consegui isso perfeitamente, mas como adiciono um CSS à saída para o texto? Alguma ideia sobre isso. Obrigado

  5. Você poderia me ajudar a estilizar a saída do echo? Quero colocar a contagem de visualizações no meu loop e consegui isso perfeitamente, mas como adiciono um CSS à saída para o texto? Alguma ideia sobre isso. Obrigado

  6. Você poderia me ajudar a estilizar a saída do echo? Quero colocar a contagem de visualizações no meu loop e consegui isso perfeitamente, mas como adiciono um CSS à saída para o texto? Alguma ideia sobre isso. Obrigado

  7. Você poderia me ajudar a estilizar a saída do echo? Quero colocar a contagem de visualizações no meu loop e consegui isso perfeitamente, mas como adiciono um CSS à saída para o texto? Alguma ideia sobre isso. Obrigado

  8. Md. Iftekharul Ibna Alam April 17, 2014 at 1:59 am

    É um conflito com o w3 total cache, as contagens estão aumentando automaticamente no meu blog. Se alguém visita qualquer um dos meus posts, as contagens dos outros posts também estão aumentando. Existe alguma solução para esse tipo de conflito?

    1. Se você olhar o primeiro trecho na parte inferior, temos o seguinte:

      o prefetching com alguns navegadores pode adicionar visualizações a posts não visualizados.

      // Remove problemas com o pré-carregamento adicionando visualizações extras
      remove_action( ‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0);

      A outra coisa a ter em mente é que este trecho não está configurado para funcionar bem com plugins de cache.
      Então, não tenho certeza, após mais testes, quão bem isso funcionará.

    2. Se você olhar o primeiro trecho na parte inferior, temos o seguinte:

      o prefetching com alguns navegadores pode adicionar visualizações a posts não visualizados.

      // Remove problemas com o pré-carregamento adicionando visualizações extras
      remove_action( ‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0);

      A outra coisa a ter em mente é que este trecho não está configurado para funcionar bem com plugins de cache.
      Então, não tenho certeza, após mais testes, quão bem isso funcionará.

    3. Se você olhar o primeiro trecho na parte inferior, temos o seguinte:

      o prefetching com alguns navegadores pode adicionar visualizações a posts não visualizados.

      // Remove problemas com o pré-carregamento adicionando visualizações extras
      remove_action( ‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0);

      A outra coisa a ter em mente é que este trecho não está configurado para funcionar bem com plugins de cache.
      Então, não tenho certeza, após mais testes, quão bem isso funcionará.

  9. Yves Jeanrenaud April 1, 2014 at 4:44 pm

    obrigado pelo código. Eu o atualizei para funcionar também com cache e sem usar funções do wordpress, mas alterando diretamente a tabela post_meta. Alguém está interessado nessas atualizações?

    1. Olá Yves Jeanrenaud, acho que muitas pessoas no wpsnipp adorariam. Se você enviar o trecho junto com alguns detalhes, domínio, etc. Dessa forma, podemos dar o crédito a você, o que seria ótimo.

      http://wpsnipp.com/index.php/contribute/

      1. Yves Jeanrenaud April 7, 2014 at 5:25 pm

        ok, farei isso 🙂

    2. Hector Castilla April 16, 2014 at 11:07 pm

      olá Yves, você pode compartilhar seu código? este trecho parece não funcionar bem, como Tam 'Heisenberg' Nguyen disse, minhas estatísticas também não batem.

    3. Hector Castilla April 16, 2014 at 11:07 pm

      olá Yves, você pode compartilhar seu código? este trecho parece não funcionar bem, como Tam 'Heisenberg' Nguyen disse, minhas estatísticas também não batem.

    4. Hector Castilla April 16, 2014 at 11:07 pm

      olá Yves, você pode compartilhar seu código? este trecho parece não funcionar bem, como Tam 'Heisenberg' Nguyen disse, minhas estatísticas também não batem.

    5. Olá, você pode compartilhar o código aqui, por favor. Eu uso WP Super Cache e tenho problemas com o contador.

      1. Yves Jeanrenaud August 9, 2014 at 4:49 pm

        Eu fiz

        1. Oi Yves,
          Acho que nunca recebi o código de você, me envie um e-mail em contribute e eu entrarei em contato via Gmail para que você possa enviá-lo novamente se não se importar. Acho que o código pode ter sido o problema ao enviá-lo pelo formulário de e-mail.

          1. Yves Jeanrenaud August 14, 2014 at 4:18 pm

            ah, sério? minha culpa. Vou enviar novamente.

  10. Abdulrahman Hariri March 26, 2014 at 7:18 pm

    Excelente código, obrigado Kevin. Eu estava me perguntando se você já tentou usar isso em perfis de autor? Estou pensando em tentar usar outra versão deste código para armazenar valores nos metadados do autor e contar as visitas às suas páginas de perfil.

    Obrigado!

    1. Olá Abdulrahman Hariri,
      Não, eu não tentei isso nos perfis de autor pessoalmente, mas não vejo nenhuma razão pela qual não funcionaria. Exceto por atualizar os metadados do usuário em vez dos metadados da postagem, isso deve funcionar bem.

      1. Abdulrahman Hariri May 31, 2014 at 11:07 am

        Eu tentei e está funcionando :). Muito obrigado pela informação!

  11. Abdulrahman Hariri March 26, 2014 at 7:18 pm

    Excelente código, obrigado Kevin. Eu estava me perguntando se você já tentou usar isso em perfis de autor? Estou pensando em tentar usar outra versão deste código para armazenar valores nos metadados do autor e contar as visitas às suas páginas de perfil.

    Obrigado!

  12. É possível obter a contagem de visualizações de perfil com este código?

  13. É possível obter a contagem de visualizações de perfil com este código?

  14. WordPress Users: How to Increase Functionality AND Speed Up Your Site January 30, 2014 at 10:19 am

    […] Rastrear visualizações de postagem usando metadados de postagem […]

  15. É possível alterar o 'gatilho' do incremento? por exemplo, fazer com que certos links dentro da postagem aumentem o valor dos metadados da postagem sempre que forem clicados. Com isso, talvez possamos usar este snippet legal para outros usos. (ex: quantas vezes nosso link de download foi clicado)

  16. Amigo, como fazer isso também funcionar no topo da postagem mais visitada com este código abaixo em seus scripts?

  17. Se eu tiver um campo personalizado chamado 'views' e ele exceder 100 visualizações, como posso mostrar uma mensagem específica em um template?

  18. Isso é perfeito. Exatamente o que eu estava procurando.

  19. Md. Iftekharul Ibna Alam July 16, 2013 at 4:56 pm

    Você organizou o snippet de código muito bem e de forma fácil de entender. Agora, tenho a contagem de visualizações de postagens no meu blog. Obrigado.

  20. Ótimo, isso funciona perfeitamente!

  21. Isso é incrível, muito obrigado.

  22. bom saber, 3q….

  23. tanques

  24. Obrigado pelo ótimo snippet, cara. Existe alguma maneira de acumular todas as visitas anteriores de cada uma das minhas postagens com a contagem de visualizações de postagem atual?

  25. É possível resetar este contador? Então, digamos que eu queira exibir meus posts mais "populares da semana". Toda semana as visualizações de posts resetam para 0.

Adicionar um comentário

Ficamos felizes que você tenha escolhido deixar um comentário. Por favor, tenha em mente que todos os comentários são moderados de acordo com nossa política de privacidade, e todos os links são nofollow. NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.

Checklist de Lançamento WordPress

O Checklist Definitivo para Lançamento de WordPress

Compilamos todos os itens essenciais da lista de verificação para o lançamento do seu próximo site WordPress em um e-book prático.
Sim, envie-me o eBook Gratuito!