Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Coppa WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Come visualizzare i post più popolari in base alle visualizzazioni in WordPress (2 modi)

Se vi è capitato di scorrere fino in fondo a uno dei nostri articoli, avrete probabilmente notato il nostro widget “Popolare su WPBeginner in questo momento! Questa funzione ha riscosso un grande successo tra i nostri lettori, aiutandoli a scoprire i nostri contenuti più validi e incoraggiandoli a esplorare meglio il nostro sito.

Mettendo in evidenza i post più popolari del vostro blog WordPress, non solo aiutate i lettori a trovare i vostri contenuti migliori, ma aumentate anche le metriche di engagement del vostro sito. È un vantaggio per tutti: i visitatori ricevono ottimi contenuti e voi li trattenete più a lungo sul vostro sito.

In questo articolo mostreremo come visualizzare facilmente i post più popolari in base alle loro visualizzazioni in WordPress.

How to Display Popular Posts by Views in WordPress

Quando gli utenti vedono i post più popolari del vostro blog WordPress, possono scoprire quali sono i contenuti più apprezzati dai loro colleghi lettori. In questo modo, possono controllare gli articoli e partecipare alla conversazione.

Inoltre, la visualizzazione dei contenuti più popolari in WordPress può aumentare la vostra riprova sociale. È come dire ai nuovi utenti: “Ehi, altre persone hanno trovato questi post molto utili, e potresti farlo anche tu!”.

WPBeginner's trending and popular posts

Infine, mostrare i blog di tendenza può far sì che le persone rimangano più a lungo sul vostro sito web, aumentando le pagine viste e riducendo la frequenza di rimbalzo.

Più aumenta l’engagement degli utenti, più Google ritiene che i contenuti siano validi e importanti. A sua volta, la SEO di WordPress migliora e il sito si posiziona più in alto.

Purtroppo, WordPress non ha una funzione o un blocco integrato per visualizzare i post più popolari in base alle visualizzazioni di pagina. In questa guida vi mostreremo come fare esattamente questo con un plugin e con il codice.

Basta cliccare su uno dei link rapidi qui sotto per passare direttamente al metodo preferito:

Metodo 1: Visualizzare i post WordPress più popolari in base alle visualizzazioni con MonsterInsights (consigliato)

Il modo più semplice per visualizzare i post popolari in base alle visualizzazioni in WordPress è un plugin. Esistono molti plugin per la visualizzazione dei post popolari su WordPress, ma a nostro avviso la scelta migliore è MonsterInsights.

The MonsterInsights Google Analytics plugin

Utilizzato da oltre 3 milioni di siti web in tutto il mondo, MonsterInsights è il miglior plugin di Google Analytics per WordPress. Sebbene la sua funzionalità principale sia l’analisi, ha anche una funzione facile da usare per mostrare i post più popolari.

Per prima cosa è necessario installare il plugin MonsterInsights e collegarlo al proprio account Google Analytics. Per maggiori dettagli, consultate la nostra guida passo-passo su come installare Google Analytics in WordPress per i principianti.

Nota: sebbene sia disponibile una versione gratuita di MonsterInsights, noi utilizzeremo la versione Pro poiché include la funzione dei post popolari.

Scegliere un tema peril widget dei post più popolari

Una volta attivato e configurato il plugin, andare su Insights ” Popular Posts dalla dashboard di WordPress. Quindi, fate clic sulla voce di menu “Widget dei messaggi popolari”.

The Popular Posts Widget in MonsterInsights

Scorrendo verso il basso, è necessario selezionare un tema per visualizzare il widget dei post popolari. Ci sono varie opzioni.

Alcuni includono un’immagine in evidenza per il post, mentre altri hanno un aspetto più minimale.

Choosing a popular posts widget theme in MonsterInsights

Se si desidera vedere l’aspetto del tema prima di fare la propria scelta, basta spostarsi in fondo alla pagina fino alla sezione Anteprima del tema.

È inoltre possibile visualizzare l’anteprima del tema in formato Wide o Narrow. Con il formato Wide, i post sono elencati sotto il contenuto della pagina o del post, mentre il formato Narrow li visualizza sul lato destro, come una barra laterale.

Previewing the popular posts widget theme in MonsterInsights

Quindi, scorriamo verso il basso fino alla sezione “Personalizza design”. Qui è possibile modificare i colori del tema, la dimensione dei caratteri, il layout e il numero di post da visualizzare.

Le opzioni di personalizzazione possono variare a seconda del tema utilizzato. Quindi, assicuratevi di esplorare i diversi temi per vedere quello più adatto a voi.

Customizing the popular posts widget theme in MonsterInsights

Configurare il comportamento del widget dei post più popolari

Una volta configurato il design del tema, è necessario andare alla sezione Comportamento. Qui si controllerà il modo in cui il widget dei post popolari apparirà sul vostro sito WordPress.

Nelle impostazioni di Widget Styling, si può scegliere di utilizzare il design realizzato in precedenza o di non applicare alcuno stile al widget. Con la seconda opzione, il widget seguirà il CSS del tema del sito WordPress.

Poi, si può scegliere come il widget deve scegliere i post più popolari. Per questo tutorial, abbiamo scelto “Curated”, ma è anche possibile visualizzare i post più popolari in base al numero di commenti.

Some of the popular posts widget's behavior settings in MonsterInsights

La prossima cosa da fare è attivare l’opzione “Aggiungi i 5 post più importanti da Google Analytics”. Prima di farlo, però, è necessario utilizzare l’Add-On MonsterInsights Dimensions e aggiungere il tipo di post come nuova dimensione personalizzata.

In questo modo MonsterInsights sceglierà i post più popolari in base ai dati di Google Analytics.

Per farlo, è necessario scaricare il componente aggiuntivo MonsterInsights Dimensions e installarlo come plugin in WordPress. Per istruzioni passo passo, consultate la nostra guida su come installare un plugin di WordPress.

Quindi, andare su Insights “ Impostazioni e passare alla scheda “Conversioni”. Quindi fare clic su “Aggiungi nuova dimensione personalizzata”.

Adding a new custom dimension in MonsterInsights

Una volta fatto ciò, selezionare “Tipo di post” nel menu a discesa.

Questo abilita MonsterInsights a monitorare le prestazioni dei post del blog e di altri tipi di contenuto personalizzati.

Selecting post type as a custom dimension in MonsterInsights

Ora è sufficiente tornare a Insights ” Popular Posts e andare su ‘Popular Posts Widget’.

È sufficiente attivare il pulsante “Aggiungi i 5 post più importanti da Google Analytics”. Quindi, fate clic su “Test dei post automatizzati” per verificare se l’impostazione è riuscita.

Adding top 5 posts based on GA data in MonsterInsights

In caso affermativo, verrà visualizzato un messaggio di successo.

Dovrebbe essere scritto: “I dati dei Post popolari possono essere recuperati correttamente. Attenzione: a seconda di quando sono state configurate le impostazioni delle dimensioni personalizzate, potrebbero essere necessari fino a 7 giorni per vedere il caricamento dei dati rilevanti dei post popolari da Google Analytics”.

Popular posts data can be fetched correctly popup message in MonsterInsights

Passando alle fasi successive, è possibile aggiungere un titolo che apparirà sopra il widget. Può essere qualcosa come “Scopri i nostri post più popolari” o qualcosa di simile.

In basso, si può scegliere se il widget deve essere visualizzato in tutti i tipi di post, se deve essere escluso da specifici post e/o se deve apparire solo in alcune categorie di post.

Queste impostazioni sono utili se si sono creati post type personalizzati diversi dai blog e si ritiene che il widget dei post popolari sia irrilevante.

More behavior settings for the popular posts widget in MonsterInsights

Uno degli ultimi passi consiste nell’incorporare il widget dei post popolari. Ci sono diverse opzioni: inserirlo automaticamente, usare un blocco Gutenberg, aggiungerlo come widget della barra laterale o usare uno shortcode.

Esaminiamo una per una tutte le opzioni.

The embed options of popular posts widget in WordPress

Incorporare automaticamente il widget dei post più popolari

Il posizionamento automatico è consigliato se si desidera che il widget venga visualizzato su tutti i post che corrispondono alle impostazioni di comportamento impostate in precedenza.

A tal fine, è sufficiente attivare il pulsante Posizionamento automatico.

Activating automatic placement for the popular posts widget in MonsterInsights

Lo svantaggio di questa opzione è che non è possibile regolare il design del widget in base all’aspetto migliore del post o della pagina. Se avete bisogno di questo tipo di funzionalità, potete provare il metodo successivo.

Incorporare il blocco dei messaggi popolari in una pagina o in un post

Se si desidera avere un maggiore controllo sull’aspetto del widget in una pagina o in un post, questo metodo fa al caso vostro.

Per prima cosa, accedere all’editor dei blocchi del post o della pagina in cui si desidera inserire il widget. Quindi, fare clic sul pulsante “+” per aggiungere un blocco in qualsiasi punto dell’editor e cercare il blocco Popular Posts.

Adding MonsterInsights' popular posts block in the WordPress block editor

Nel pannello delle impostazioni del blocco sono presenti opzioni per modificare il tema del widget, la dimensione dei caratteri, i colori, il titolo, il layout e il numero di post.

Queste impostazioni sono simili a quelle già viste nel plugin MonsterInsights.

MonsterInsights' popular posts block settings in the WordPress block editor

L’unica differenza è che non è possibile modificare i post che vengono scelti nel widget.

Detto questo, nelle impostazioni del comportamento è possibile mostrare solo i post di determinate categorie. In questo modo, è possibile rendere la scelta dei post popolari più adatta alle proprie esigenze.

Choosing to only display posts from certain categories in the MonsterInsights popular posts widget

Una volta soddisfatte le impostazioni del blocco, basta fare clic sul pulsante “Aggiorna” nell’editor di post e pagine.

Ecco come appare il blocco dei post popolari sul nostro sito web di prova:

Example of what the MonsterInsights popular posts block look like on the WordPress site

Incorporare il widget dei post più popolari in una barra laterale

Se si utilizza un tema WordPress non bloccante che dispone di un’area della barra laterale predisposta per i widget, è possibile aggiungere il widget dei post popolari. Questo è ciò che abbiamo fatto nel nostro articolo su come aggiungere le caratteristiche dei post nella barra laterale di WordPress.

È sufficiente andare su Aspetto ” Widget. Quindi, fare clic sul pulsante ‘+’ per aggiungere un widget nell’area della barra laterale e cercare il widget Popular Posts – MonsterInsights.

Adding the MonsterInsights popular posts widget to the sidebar area

Come nel metodo precedente, il widget include impostazioni simili per personalizzare l’aspetto del tema.

La differenza è che l’interfaccia è leggermente più complicata da usare. Mentre si modificano le impostazioni, non è possibile vedere l’aspetto effettivo del widget. È necessario fare clic su un altro widget o su un’altra area per visualizzare l’anteprima.

Se siete soddisfatti dell’aspetto del widget, fate clic su “Aggiorna” nell’angolo in alto a destra.

Updating the sidebar area after adding the MonsterInsights popuplar posts widget

Assicuratevi di andare sul vostro sito web per verificare che la barra laterale sia corretta.

Ecco come si presenta il nostro:

Example of the MonsterInsights popular posts widget in a sidebar

Se volete far apparire il widget Popular Posts solo su pagine specifiche, potete leggere la nostra guida su come mostrare o nascondere i widget su determinate pagine di WordPress.

Incorporare il widget dei post più popolari con uno shortcode

L’ultima opzione consiste nell’utilizzare uno shortcode. Questo metodo è consigliato se le opzioni precedenti non funzionano per il vostro caso specifico.

Nella scheda Popular Posts Widget, scorrere fino alla sezione ‘Embed Options’. Scegliere quindi “Visualizza utilizzando un codice breve” e fare clic sul pulsante “Copia codice breve”.

Copying the popular posts widget shortcode in MonsterInsights

Dopodiché, è sufficiente posizionare lo shortcode dove si preferisce. Per ulteriori informazioni, consultate la nostra guida su come aggiungere shortcode in WordPress.

Metodo 2: Visualizzare i post più popolari di WordPress in base alle visualizzazioni con il codice (più avanzato)

Il metodo MonsterInsights è il modo più semplice per visualizzare i contenuti più popolari e migliori in base alle visualizzazioni in WordPress. Ma se vi sentite a vostro agio con la codifica, potete anche usare il codice per mostrare i vostri post più popolari su WordPress.

Per questo metodo, si consiglia di utilizzare un plugin per gli snippet di codice come WPCode, che è quello che utilizzeremo in questa guida.

WPCode - Best WordPress Code Snippets Plugin

WPCode rende sicuro l’inserimento di codice personalizzato senza interagire direttamente con i file di WordPress. Inoltre, poiché questo metodo richiede l’uso di più snippet di codice, il plugin renderà molto più semplice la gestione e il monitoraggio di tutti.

Per prima cosa, è necessario installare WPCode in WordPress. È disponibile una versione gratuita di WPCode, ma noi utilizzeremo la versione Pro, poiché è dotata delle funzioni necessarie per inserire il codice nei punti giusti.

Per una guida all’installazione passo passo, leggete il nostro articolo su come installare un plugin di WordPress.

Aggiungere la funzione di contatore delle visualizzazioni dei post di WordPress

Dopo l’attivazione del plugin, è necessario andare su Code Snippets ” + Add Snippet dalla dashboard. Quindi, passare il mouse su “Aggiungi il tuo codice personalizzato (nuovo snippet)” e fare clic su “+ Aggiungi snippet personalizzato”.

Adding a new custom code snippet in WPCode

Ora ci troviamo nell’editor di snippet di codice di WPCode. Prima di inserire il codice, aggiungere un titolo allo snippet.

Per questo primo codice, si può dare un nome come “WordPress Post Views Counter Function”. Questo perché lo scopo di questo primo codice è creare una funzione per il conteggio delle visualizzazioni dei post in WordPress.

Quindi, cambiare il tipo di codice in “Snippet PHP”. Si noti che tutti gli snippet di codice che si dovranno aggiungere da questo articolo sono in PHP.

Creating the WordPress Post Views Counter Function in WPCode

Dopodiché, è possibile copiare e incollare il seguente codice:

function wpb_set_post_views($postID) {
    $count_key = 'wpb_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);
    }
}
//Get rid of prefetching to keep the count accurate
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);

A questo punto, basta scorrere la sezione “Inserimento” e selezionare “Inserimento automatico” per il metodo di inserimento e “Esegui ovunque” per la posizione. Questo funziona come inserire il codice nel file functions.php del vostro tema.

Successivamente, spostarsi nella parte superiore destra della pagina e rendere attivo il codice.

Quindi, fare clic su “Salva snippet”.

Choosing the insertion method and location in WPCode

A questo punto, è necessario aggiungere un altro snippet di codice personalizzato. Questo può essere chiamato ‘Track Post Views Function Call’.

Questo codice richiama la funzione di cui sopra e la attiva nelle pagine dei singoli post.

Una volta fatto, copiate e incollate il seguente snippet:

wpb_set_post_views(get_the_ID());

L’aspetto diverso di questo snippet di codice è che si sceglierà la posizione “Insert After Post” (Inserisci dopo il post), perché dovrebbe essere eseguito sulle pagine dei singoli post.

Choosing Insert After Post as the code insertion location in WPCode

Una volta terminato, basta rendere attivo il codice e salvarlo.

Inserire il gancio per il monitoraggio delle visualizzazioni dei post di WordPress

Ora è necessario aggiungere un nuovo frammento di codice che verifichi se la pagina corrente è un singolo post. In caso affermativo, chiamerà la funzione Contatore di visualizzazioni dei post di WordPress per tracciare e aggiornare il numero di visualizzazioni del post.

In questo modo, ogni volta che un utente visita il post, il suo numero di visualizzazioni viene aggiornato.

Chiamiamo questo snippet ‘WordPress Post Views Tracking Hook’. Quindi, inseriamo le seguenti righe di codice:

function wpb_track_post_views ($post_id) {
    if ( !is_single() ) return;
    if ( empty ( $post_id) ) {
        global $post;
        $post_id = $post->ID;    
    }
    wpb_set_post_views($post_id);
}
add_action( 'wp_head', 'wpb_track_post_views');

È possibile scegliere il metodo di inserimento come “Auto Insert” e la posizione come “Frontend Only”.

Come per i passaggi precedenti, basta attivare il codice e salvare lo snippet.

Choosing Frontend Only as the code insertion location in WPCode

Nota: se si utilizza un plugin per la cache, questa tecnica potrebbe non funzionare per impostazione predefinita. È possibile utilizzare la funzione di caching dei frammenti offerta da alcuni plugin di caching come W3 Total Cache per farla funzionare.

Aggiungere funzioni per recuperare il conteggio delle visualizzazioni dei post e visualizzare i post più popolari con il conteggio delle visualizzazioni

Siamo arrivati ai passi finali di questa guida. È necessario aggiungere uno snippet di codice che recuperi e formatti il numero di visualizzazioni di un determinato post di WordPress. Questo sarà utile in seguito quando si visualizzerà l’elenco dei post più visti.

È possibile denominare questo codice come ‘Funzione di recupero del conteggio delle visualizzazioni dei post’ e impostare la posizione su ‘Esegui ovunque’.

Ecco il frammento di codice:

function wpb_get_post_views($postID){
    $count_key = 'wpb_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';
}

Anche in questo caso, assicuratevi di rendere attivo il codice in WPCode e di salvarlo successivamente.

Una volta fatto questo, create di nuovo un nuovo snippet di codice e chiamatelo “Visualizza i post più popolari con il conteggio delle visualizzazioni”. Questo è il codice che mostrerà i post più popolari in fondo ai post del blog.

Nella casella Anteprima codice, inserire il seguente snippet:

// Customize the query parameters as needed
$popularpost = new WP_Query( array(
    'posts_per_page' => 3,         // Feel free to adjust the number of posts to display
    'meta_key' => 'wpb_post_views_count',
    'orderby' => 'meta_value_num',
    'order' => 'DESC'
));
?>

<div class="popular-posts">
    <h2>See Our Most Popular Posts</h2> <!-- Feel free to customize the title -->
    <ul>

    <?php while ( $popularpost->have_posts() ) : $popularpost->the_post(); ?>
        <li>
            <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
            - <?php echo wpb_get_post_views(get_the_ID()); ?>
        </li>
    <?php endwhile; ?>

    </ul>
</div>

<?php wp_reset_postdata(); 

Come si nota nel codice, è possibile regolare il numero di pubblicazioni da visualizzare e personalizzare il titolo di questa sezione.

Nella sezione WPCode Insertion, assicurarsi di selezionare ‘Insert After Post’ per la posizione. Quindi, rendere attivo il codice e salvare lo snippet.

Ora non resta che visitare uno dei post del blog e vedere se il codice funziona. Ecco come appare la sezione dei post più popolari per visualizzazioni sul nostro blog WordPress di prova:

What the most popular posts by views section looks like made with WPCode

Suggerimento dell’esperto: se si desidera personalizzare ulteriormente il codice ma non si ha alcuna esperienza di codifica, è possibile utilizzare il generatore di codice AI di WPCode. Questa funzione può modificare il codice esistente per adattarlo alle vostre esigenze.

Per ulteriori informazioni, consultate la nostra recensione completa di WPCode.

Video tutorial

Se preferite le istruzioni visive, guardate la versione video di questa esercitazione:

Subscribe to WPBeginner

Speriamo che questo tutorial su WordPress vi abbia aiutato a capire come visualizzare i post più popolari in base alle visualizzazioni. Potreste anche voler dare un’occhiata alla nostra scelta dei migliori plugin di post correlati per WordPress e al nostro articolo su cosa rende una landing page ad alta conversione.

Se questo articolo vi è piaciuto, iscrivetevi al nostro canale YouTube per le esercitazioni video su WordPress. Potete trovarci anche su Twitter e Facebook.

Divulgazione: I nostri contenuti sono sostenuti dai lettori. Ciò significa che se cliccate su alcuni dei nostri link, potremmo guadagnare una commissione. Vedi come WPBeginner è finanziato , perché è importante e come puoi sostenerci. Ecco il nostro processo editoriale .

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

Il kit di strumenti WordPress definitivo

Ottenete l'accesso gratuito al nostro kit di strumenti - una raccolta di prodotti e risorse relative a WordPress che ogni professionista dovrebbe avere!

Reader Interactions

165 commentiLascia una risposta

  1. Bigdragon13th

    Hello,
    I’ve using this code for months and it’s work greats! That’s until I start using W3 Total Cache and this code stop count views for me.
    I’m struck at where do I need to put the mfunc to let the code work with cache. Can you point that out?
    FYI, I put all the code in a site-specific plugin.

  2. AJ

    Hell this is great! How would I display the view count outside of the post loop like in the sidebar?

  3. leslie

    hello, I have some problem on how setting up like when the login user won’t include on the count while viewing any pages?? how to do that.. please need some help on these. thanks

  4. Sarah

    Hey there, thanks for this. REALLY helpful!! Would you know how to apply a time range to this code? For example to show the most popular posts in the last day, week or month etc? I know there are plugins for this but I would like to do it without one :)

  5. Denis

    Hello,
    thanks for this nice tutorial. It works on my page!

    – how can I exclude robots and spiders that hit my posts?
    – May be I can set a timer of 10 seconds. after that the count should rise. So the people who only click thourgh the posts are not counted.

    Cheers,
    Denis

  6. Sarah

    You have no idea how much time you saved me. Thank you, works perfectly! :)

  7. Clay Hickman

    Thanks for the tip. Will use.

  8. Jenni B

    Hello – thanks so much for this! I noticed the question regarding the W3TC workaround, but have a slightly different question: does that still apply if I’m hooking into wp_head from functions.php, and if so, how exactly do I implement it there? Thank you!

  9. rafi

    this is really easy and very helpful! thanks man!

  10. Kosmos

    Hello, thanks for this snippet.

    I have a problem, the orderby don’t work. I have five posts :
    – Post 1 : 85 views
    – Post 2 : 35 views
    – Post 3 : 165 views
    – Post 4 : 1 view
    – Post 5 : 1 view

    When i displayed it the order was : 1, 2, 4, 5 and 3

    Do you have an idea please ?

    • Raj

      It might be integer type issue ..

  11. Iftekhar

    following your article I am using post view count in my site since 6 months. It was working fine, but recently I am having problem with this. If a visitor view a post the count is increasing by 1 but the problem is the count is increasing in all other posts. I have w3 total installed and I m using mfunc according to your article. Please help me if you have any idea about this issue… Thanks.

      • Iftekhar

        The problem seems to w3. Post view count is OK since deactivated. But I want to use both of them :(

  12. ivan

    Hello,
    I am wanting to switch from using the plugin because it doesn’t support the polylang language (the author’s not getting back to me and I don’t really know if it’s possible to filter functions for the plugin..)
    Two questions:
    – I examined the code a bit and I’m not sure if this code starts counting posts from when it’s implemented? Or does it somehow retrieve where the post counts are currently?
    – The current code on this website uses the get_posts() function so it creates an args array instead of using WP_Query(). Is this the same thing? I’m guessing not. And if it isn’t is the code below correct to get the array? I tried implementing this but it didn’t seem to work.
    $args = array( ‘meta_key’ => ‘wpb_post_views_count’, ‘orderby’ => ‘meta_value_num’, ‘order’ => ‘DESC’,’numberposts’ => 6, ‘post_status’=>”publish”,’post_type’=>”post”,’lang’ => ‘en’);
    thanks!

  13. Tomas

    This approach is very basic. If you want to count clicks from the same user (same IP) only every 5 minutes or 10 minutes etc. you need to have a separate table for that and before adding a new row in db you need to check the ip and time. If there is a record saved 3 minutes ago, the click is not added. Otherwise, it is added. Also this aproach allows you to create custom list of most viewed articles in 7 dyas, month, all time etc. Or even by category, user etc. (if you store appropriate values in appropriate table columns.

  14. boson

    i am trying .. when you say put code wpb_set_post_views(get_the_ID()); inside of single post loop, does that mean use this code inside of the theme single.php anywhere?
    thank you for your help

  15. Cory Dobson

    Is there a way of restricting when the post views are collected from? For example, I am looking to display the posts with the most views in the last 24 hours, how would you do something like that using this code?

    Great post by the way, really helpful!

  16. igor

    how can I paginate the results.

    10 results by page lets say

  17. Mark

    What if your single-xxxx.php doesn’t use the loop but custom fields. How can I use this code if I don’t use the loop?

    • WPBeginner Support

      single-xyz.php means that file is used for a single post with xyz slug. You can still add the last code snippet in your template just where you think that the template ends displaying content.

      Admin

  18. Dusan

    I’m confused as to where to put the mfunc code?

    • WPBeginner Support

      If you are using W3 Total Cache then you can add this code just before wpb_get_post_views(get_the_ID()); in your templates where you want to display the popular posts. The purpose of this code is to allow W3 Total Cache to dynamically display popular posts and not cache it.

      Admin

    • Waqas Munir

      Dear, i am really confused about that… I am trying to add this to my blog, but I have no experience in all this.

  19. Aleksander

    What about using update_post_meta function instead of delete_post_meta and add_post_meta ?

  20. George

    Thanks for this post! Really really good.
    I’ve two question:

    1. Is there any possibility to count just one visit for each IP adress? How?.
    2. Can i show the most popular posts by a specific period of time? For example, most visited posts this month, or the most popular posts from 1 of may to 1 of june…

    Thank you!

  21. Igor Gumush

    thanks , working great :)

  22. shishir umrao

    Hi,
    This code is working but whenever i reload the page , it is adding “2” to the total page count. For example if page count is 14 and after reloading total page count is 16 … can anyone guess where’s the problem ?

    Shishir Umrao

      • shishir umrao

        Yeah. I figured out this piece of code was responsible for this.

  23. Nick

    Very useful post, I managed to make my Tag pages to order posts by a custom field value similar to post view count, however, I ave pagination on my tag pages and it keeps showing the same top ranking posts on all pages, even after I have removed this code:

    ‘posts_per_page’ => 4,

    How do I fix the pagination so it show other posts on subsequent Tag pages?

    • Chris

      How did you manage to make your Tag pages order posts by a custom field value similar to post view count?

      It looks like the popular posts plugin only takes categories as a parameter.

  24. Mike

    Thanks for the very detailed instructions. Will using this to display the most popular posts cause a lot of additional server load if a site has significant traffic? Some of the WP plugins for this sort of thing tend to have this problem.

  25. Ryan Karpeles

    Uh, awesome! Just awesome. THANK YOU for this!!! Works perfectly!

  26. Lowell

    I’m still learning this stuff so pardon my ignorance.

    How do you allow the user to choose between queries like they do on codecanyon when they allow you to sort by price, sales, date etc.?

    Thanks so much.

  27. saeed

    How can I change number of popular posts that display?

  28. Adam Davies

    Thank you so much for this. Life saver and a great tip that I definitely will be using more often.

  29. Md. Ariful Islam

    Hey, Really , Many Many thanks for this useful tips. I am highly glad to you.

  30. Ar Ya

    Hi , that’s great !
    But ‘orderby’ => ‘wpb_post_views_count meta_value_num’ not working.
    please use : ‘orderby’ => ‘meta_value_num’
    thnx

  31. nick

    Thanks, it works for me, just with one important exception – popular posts are not as links, just their titles. How can I fix this, please?

  32. Preston

    I added this code in the manner described in the article and upon activation, I saw this….

    The plugin generated 2 characters of unexpected output during activation. If you notice “headers already sent” messages, problems with syndication feeds or other issues, try deactivating or removing this plugin.

    • Preston

      Fixed. I did two things:

      1. Switched my permalink structure to a custom structure /%category%/%postname%/
      2. Check through all of my pages for extra spaces.

      One of them worked.

      …go figure

      Preston

  33. Jose Vega

    Hi, I think it´s necesary add – wp_reset_query(); – at the end of the query to destroys the previous query used on a custom Loop.

    I hope It helps somebody.

  34. Jon Edwards

    I have this working to 95% using a custom WP Query to display popular posts from each category.

    The only bit not working for me is the order – mine won’t display in descending order of views.

  35. Cameron

    Thanks for the post! This really helped.

    I’m not sure if anyone else ran into this issue, but when you set up the arguments for WP_Query, you have orderby => ‘wpb_post_views_count’. This was a problem for me because I wasn’t sure how it was ordering my posts. In the codex it says that if your using numbers they will only sort by the first digit. To fix this, you can simply replace the ‘wpb_post_views_count’ with ‘meta_value_num’. This basically will tell the query to reach inside the post’s meta value and probably cast it to an integer before it sorts. Hope this helps anyone running into the same issues.

    Overall, it works great! I have the 4 most popular posts in a slider on the home page. Thanks again!

      • efishinsea

        Hi. Your code sample up top is *not * updated.

        Instead of this:

        ‘orderby’ => ‘wpb_post_views_count meta_value_num’

        you should have this as suggested :

        ‘orderby’ => ‘meta_value_num’

        if you want to sort by “Most to Least”

  36. Minh

    Why it only shows posts which have count view < 100?

  37. George

    Thanks for the tutorial. How do you exclude current posts from displaying?

  38. Kris

    This looks great on my home page but it seem to want to display on my single.php or anywhere else on my site. I tried creating a sidebar-single.php and inserting the code but still no luck. Any idea why it wouldn’t work on other areas my theme?

    • Kris

      i got it working. Thanks for this.

  39. Anderson

    Dont work, its show randomic posts :S and i use post_type = > ‘post-type-name’

    • Mody

      This usually happens when meta key wpb_post_views_count is not available for posts, make sure you add the function that tracks views within wp while loop, otherwise it will keep showing random posts.

      – Mody

      • Bent

        Hello,
        I’m using your code for track post view in the wordpress theme.

        function wpb_get_post_views($postID){
        $count_key = ‘wpb_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’;
        }

        The problem is that when I use W3 Total Cache the track view is not working right.

        Is there a way in the W3 Total Cache’s Options to put ignore only on this function, but in the same time I want the code to work with W3 Total Cache?

        Thank you!

        • Editorial Staff

          Read the article again. We have already covered this “Fragmented Caching”.

  40. Vaibhav

    Hello
    i followed your tutorials and have done exactly what u said.
    i also added ur snippet
    php query_posts(‘meta_key=post_views_count&orderby=meta_value_num&order=DESC’);
    in index.php

    i am facing a little error,
    i am using infinite scrolling
    when i put this snippet in index.php
    the infinite scroll instead of loading next set of post
    loads the same sets of post

    For better Understanding u can check it live here
    blog.newgags,com

  41. Henry

    For some reason my post views are incrementing by 2 on each page refresh. What could be happening there?

    • Henry

      I do apologise. I had added the tracker to both the WP header and also to the single post body. Very stupid on my part :}

      Nice tutorial, very easy to follow.

  42. Brandon

    First of all thanks for this post. Second I have been using this script for a few days now and for some reason it started out fine and now it is not displaying the most viewed posts, I don’t see any rhyme or reason to what posts are now being displayed. The last I checked the post that it is displaying at the top has 8 page views. I know there are posts with 25+ recorded page views. I would like to figure this out. Can you possibly point me in the right direction. I followed this post word for word. The post views are being recorded properly.

    • Editorial Staff

      Not sure what could be going wrong. The WP_Query is suppose to list the posts with the highest counts first.

      Admin

  43. Einar Ólafsson

    Hi. This works grade up until the view count gets over 999. All post with more view counts than 999 are not displayed, the query never post them. The latest post is the one with exactly 999 and the rest are under that. I have over 100 post that have more than thousand and are not being included.

    • Editorial Staff

      Interesting. We have posts with over 10k views and it seems to be working just fine.

      Admin

  44. Martinbeasnunez

    Guys you rockkk

    Quick question:
    If i have add a custom post type in your code ?
    (popular post from especific custom post type)

    Regards (:

  45. Artem Russakovskii

    This is a good basic tutorial, but be warned: it’s not going to work if you use caching strategies that bypass PHP (like wp-supercache, W3TC, nginx/varnish, etc). The only way to count those would be via Javascript or log parsing.

    • Editorial Staff

      Hey Artem, Thanks for dropping by. Actually using W3 Total Cache, you can use fragment caching and it works just fine. Going to update the article for those who are using the caching plugin.

      Admin

      • Artem Russakovskii

        Interesting. However, I run nginx in front of W3TC, and it does a whole lot of its own caching, so it’s always safer/more reliable to use an AJAX approach. Nice info on the fragment caching though, I had no idea W3TC had it.

  46. Ramon Fincken

    Why use
    //To keep the count accurate, lets get rid of prefetching
    remove_action( ‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0); ?

    if you can use the main loop or the footer ?

    • Editorial Staff

      Some browsers prefetch the rel links with the next value. So technically when a user views one post, it can act as if they had viewed both posts. This will cause inaccurate count. If you like inflated views, then don’t take it off.

      Admin

  47. Nino Blasco

    Great article! Explanation useful and easy to understand.
    Thank you.

  48. Connor Crosby

    Yay! A tutorial that doesn’t require a plugin!

    • Editorial Staff

      Yeah we try to balance things out for our audience. This was requested by the users, and we were using it on our own site.

      Admin

      • Zach

        Please stop saying stuff like this. Plugins aren’t bad, it’s articles like this that make them look bad. Enough articles have come out over the past few weeks to fully explain this – it’s getting a little embarrassing.

        • Editorial Staff

          How would you suggest titling future posts instead? DIY prefix? These are different then just using a pre-made plugin. Also, if you read the article, there is no where in our article that we say “plugins are bad”. We clearly state that the only reason why coded this was to get more customization. It is up to a user to take either stance. Some can think that plugins are bad… whereas others like yourself can think that we are saying that plugins are bad…

        • Zach

          I don’t think any type of prefix is needed. It’s one of the great/scary things about WordPress. You COULD put this code in your theme, but then begs the argument about needing to either, 1) Loose those customizations when you change your theme, or 2) have the knowledge to properly pull those over to another theme.

          A lot of the users here are beginners (hence the point of this site), so many will just copy/paste what you give them. WP Beginner is obviously a fantastic resource (reason why I follow you on Twitter), but you have a responsibility to not put a false notion about how plugins/themes work.

          Correct, you don’t flat out say, “Plugins are bad, put this in your theme instead!”, but the original commenter to the thread I replied to, said, “Yay! A tutorial that doesn’t require a plugin!” – so even though you didn’t say it, that’s how it was taken.

          I’d suggest doing was Pippin does for his plugins – he has a simple starter plugin he uses for all of his tutorials. Why not create a blank “Starter Plugin” download, with just the basics, so others can download and put their customizations in there instead? Reference it in each article you do and it takes out some of the confusion. Thanks.

        • Editorial Staff

          We have been following Otto’s advice on site-specific plugin for quite some time. It is probably similar to what Pippin does. If you read this article, site-specific plugin is hyperlinked. It is in most other articles as well. That article shows users the importance of site-specific plugin and advise users to not put everything in functions.php file. At the bottom of that article, the sample “starter plugin” is there for anyone to start with.

        • codekipple

          In fairness this tutorial helped me out. I wanted a simple solution for popular posts after trying some of the plugins and not being able to fully control the markup. This tutorial helped me quickly implement some popular posts functionality into my own plugin.

          So i agree that using pre-built plugins is not a bad thing, but at times tutorials like this are useful to take control and build out a plugin that works the way you need it to instead of fighting against an already built plugin.

    • Pippin

      As Zach said, please stop using “without a plugin”. Sure, it’s cool to see how to code this yourself but there is literally no difference between this code and the code in a plugin. You could place this code into a plugin and it would function identically to placing it in your theme.

      • Ruben

        If you say there’s no difference, you have no idea what you’re talking about. Lets say your are working on a site and don’t have access to the plugins directory, making a solution that works “without using a plugin” would be a viable alternative.

        As for the title, semantically the title should reflect the content of the post and could be “How to Display Popular Posts by Views in WordPress with or without a Plugin”.

        However, taking SEO in to consideration, lets say he would like this post to reach a specific audience, for example, people who don’t want to or can’t use a plugin, the title would probably be best as is.

  49. Gautam Doddamani

    i am using genesis child theme..can u tell me which all functions and codes to use..i am sorry i am a noob to genesis…

    • Editorial Staff

      For child theme users, the wp_head solution would work to track post views. Not sure what else you meant.

      Admin

      • Gautam Doddamani

        is it true? as artim told, does this code become unresponsive when we use a caching plugin?? for example i currently use W3 total cache and i want to use this method to build my custom popular post by views widget…i read this kind of post on wpsnipp.com and the users suggested it does not work when we enable caching plugins…reply soon…

        • Editorial Staff

          Read the comment reply to Artem. You can use fragment caching to make it work just fine.

Lascia una risposta

Grazie per aver scelto di lasciare un commento. Tenga presente che tutti i commenti sono moderati in base alle nostre politica dei commenti e il suo indirizzo e-mail NON sarà pubblicato. Si prega di NON utilizzare parole chiave nel campo del nome. Avremo una conversazione personale e significativa.