Home / loop / Most popular posts using views post meta
  • Alec

    I cant get this working

    Like this?

    ‘dropzone’, ‘posts_per_page’ => 2) ); ?>

    have_posts() ) : $loop->the_post(); ?>
    <a href="”>

  • Alec

    Got it!

    Here’s my code.

    <a href="”>

  • Pingback: 20 More WordPress Code Snippets and Hacks()

  • Balkanboy1982

    How do you set up this to show most popular posts for today, this week or this month?

    This is all time I presume.


    • You can just add a little to the query_post &monthnum=’ . date( ‘n’, current_time( ‘timestamp’ ) )

      query_posts(‘meta_key=post_views_count&orderby=post_views_count&order=DESC&monthnum=’ . date( ‘n’, current_time(‘timestamp’))’);

      • Yashmistrey

        dear Kevin i tried these but it’s not working here is my code 

        plz help me

      • Yashmistrey

        these but it’s not working here is my code 
        query_posts(‘meta_key=post_views_count&orderby=post_views_count&order=DESC&monthnum=’ . date( ‘n’, current_time(‘timestamp’))); if ( have_posts() ) : while ( have_posts() ) : the_post(); 
        dear Kevin i tried 

        plz help me

        •  your orderby value is not correct,

          • Sangeeta Mevar

            please reply to Yashmistrey Kevin !!

          • Sangeeta, I did, in above snippet you can see


    • Balkanboy1982


  • With a little modification can also work with wp-comments, since it uses the same method:


    • I’m not familiar with wp-comments is this a plugin?

  • Robert Moss

    The sorting doesn’t work correctly. My posts ordered like this: 9,8,7,6,5,4,3,2,1,10,11,12 etc.

    Any idea to get the right order: 12,11,10,9,8 …?

  • Robert Moss

    Fixing my own problem:
    orderby=post_views_count must be changed to orderby=meta_value_num meta_value_num was added to the core a while ago: http://core.trac.wordpress.org/ticket/10649Robert

    • Ahh ok cool glad you got things working. Can you post a new link to the bug – I get a not found error.

      • Daniel Toma

        Actually he`s right. I got only random posts using this code and changing the orderby to meta_value_num actually fixed the problem. Thanks

        • Daniel you are correct, did some testing have just updated the post, thanks again for the input.

  •  Hi, I tried to integrate this snippet on my page, but it only works half the way it should do. Everytime a post is clicked, the code snippet also displays the post after this one as viewed by someone. Hope you understand what i mean 😉

    • Well this snippet works with the following snippet to save the views into postmeta,  http://wpsnipp.com/index.php/functions-php/track-post-views-without-a-plugin-using-post-meta/

      So if you have both setup it should work fine.  The snippet above just lets you order the posts by the post views if you have both snippets setup.

      •  Thank you for your reply. (Unfortunately) I have both setup and it doesn’t work. It’s pretty strange to me…

        • what version of wordpress are you currently running I have tested it in 3.1.2 fresh install. It could be one of your plugins that is causing problems.

        • what version of wordpress are you currently running I have tested it in 3.1.2 fresh install. It could be one of your plugins that is causing problems.

        • I am running 3.1.1. But I don’t think there is a significent difference between them two, isn’t it?

        • No 3.1.1 should not be an issue, what might cause an issues is a plugin

  • Rafael Apocalypse

    I’ve tried this code to use in a website I’m building, but for some strange reason it was updating 2 posts, always, and kind of aleatory, it was always the same, but in a few tries, it changed, I don’t really know why.

    Searching online, I’ve found somebody using global $post; and $post_id = (int)$post->ID; to get the post ID for use on the update_post_meta(); So I changed my code, and everything is ok now.

    • Hi Rafael, Interesting hhhmmmm, a few people also said they had issues I wonder if this would fix it. I will test things out and make an update. Thanks for the info….

  • Anup Tilak

    i’m getting two post only in result. though I have pass posts_per_page=5 to query post. 

    below is my loop. Can you please let me know where I’m going wrong?


    I have tried you query post as well but I got same result. Only two post in output.

    • that query looks fine, I would of course assume that you have more than 2 posts. Could be some other code within your template.

    • Guest

      This is because only two of your posts have been viewed and actually have a custom field titled “views” created. I had the same problem. Once a post was viewed for the first time, it appeared on the category page.

  • Pingback: Display Popular Posts in WordPress to Keep Your Best Content Fresh()

  • Guest

    this is amazing, thanks so much… i’m having problems with the pages navigation (next_posts_link/previous_posts_link) it shows the right amount of posts but the same post in every page. how can i fix this?? please help!

    •  Its hard to say without seeing the code involved. I would suggest sending me an email and ill have a quick look. http://wpsnipp.com/index.php/contact/

      • Opaw

        Were you ever able to resolve the issue with this user. I am having the same problem in my popular posts page. All the paginated pages show the same popular posts from page one.

  • How to display popular post related to specific category on post-pages?? And how to arrange that widget if we add using functions.php??

    • Just add &cat= after DESC and enter the id number for the category.

  • Thanks butt i can’t use this tips.please help me simple touch.Thanks to bro

  • Hey Kevin, how do I display only the most popular from “today”?

  • Dao Vu

    Thanks for your tips! Very nice

  • Thank you for the tips

  • Thank you so much for these tips, they are really helpful.