Como exibir mensagens populares por vistas no WordPress sem um complemento

No passado, mostramos como criar um tabber popular no WordPress usando um plugin. Esse plugin funciona bem na caixa para tabbers. No entanto, queríamos mais personalização em nosso layout, então decidimos fazê-lo sem um plugin. Neste artigo, mostraremos como rastrear e exibir postagens populares por exibições no WordPress sem usar nenhum plugin.

Um exemplo de nossa exibição de post popular popular é mostrado na captura de tela abaixo:

Exemplo de Publicações Populares

A primeira coisa que precisamos fazer é criar uma função que detecte as postagens de contagem e as armazene como um campo personalizado para cada publicação. Para fazer isso, cole os seguintes códigos no arquivo functions.php do seu tema ou melhor em um plugin específico do site:

função wpb_set_post_views ($ postID) {
     $ count_key = 'wpb_post_views_count';
     $ count = get_post_meta ($ postID, $ count_key, true);
     se ($ count == '') {
         $ count = 0;
         delete_post_meta ($ postID, $ count_key);
         add_post_meta ($ postID, $ count_key, '0');
     }outro{
         $ count ++;
         update_post_meta ($ postID, $ count_key, $ count);
     }
 }
 // Para manter a contagem precisa, vamos nos livrar da pré-busca
 remove_action ('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0); 

Agora que você possui essa função, precisamos chamar essa função nas páginas de postagem única. Desta forma, a função sabe exatamente qual post obtém o crédito para as visualizações. Para fazer isso, você precisaria colar o seguinte código dentro de seu loop de publicação único:

wpb_set_post_views (get_the_ID ()); 

Se você estiver usando um tema infantil ou quiser apenas facilitar as coisas para você mesmo, então você deve simplesmente adicionar o rastreador em seu cabeçalho usando wp_head hook. Então cole o seguinte código no arquivo functions.php do seu tema ou no plugin específico do site:

função wpb_track_post_views ($ post_id) {
     se (! is_single ()) retornar;
     se (vazio ($ post_id)) {
         $ global;
         $ post_id = $ post-> ID;
     }
     wpb_set_post_views ($ post_id);
 }
 add_action ('wp_head', 'wpb_track_post_views'); 

Depois de colocar isso, sempre que um usuário visitar a postagem, o campo personalizado será atualizado.

Nota: Se você estiver usando um plugin de cache, esta técnica NÃO funcionará por padrão. Estamos usando W3 Total Cache, e tem o recurso chamado Fragmented Caching. Você pode usar isso para que isso funcione bem. Aqui está o que precisa ser alterado:


Agora, você pode fazer todo tipo de coisas legais, como contagem de exibição de exibição de exibição, ou classificar publicações por contagem de exibição. Vamos dar uma olhada em como fazer algumas dessas coisas legais.

Se você quiser exibir a contagem de exibição de postagem em suas páginas de publicação única (muitas vezes ao lado da contagem de comentários ou algo assim). Então, a primeira coisa que você precisa fazer é adicionar o seguinte no arquivo functions.php do seu tema ou no plugin específico do site.

função wpb_get_post_views ($ postID) {
     $ count_key = 'wpb_post_views_count';
     $ count = get_post_meta ($ postID, $ count_key, true);
     se ($ count == '') {
         delete_post_meta ($ postID, $ count_key);
         add_post_meta ($ postID, $ count_key, '0');
         retornar "0 View";
     }
     retornar $ count. '  Vistas ';
 } 

Então, dentro do seu loop de pós, adicione o seguinte código:

wpb_get_post_views (get_the_ID ()); 

Se você deseja classificar as postagens por contagem, então você pode fazer isso com facilidade usando o parâmetro wp_query post_meta. A consulta de loop de exemplo mais básica seria assim:

4, 'meta_key' => 'wpb_post_views_count', 'orderby' => 'meta_value_num', 'order' => 'DESC'));
 enquanto ($ popularpost-> have_posts ()): $ popularpost-> the_post ();

 o título();

 por fim;
 ?> 

Para adicionar outros parâmetros WP_Query, como o intervalo de tempo, consulte a página WP_Query no Codex.

Esperamos que tenha gostado desta publicação.