wordpress snippets last updated   : July 14, 2014
we now have 634 snippets

Most popular posts using views post meta

wordpress snippet

A few days ago Bob posted a comment asking about using the post views snippet to display the most popular posts. So here it is! place this snippet just before the loop within the index.php template and wordpress will use the post views to order your posts from highest to lowest. Don’t forget that for this to work you will need to setup the post views snippet.

snippet :  PHPcopy
<?
query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC');
?>
Recently update this snippet with meta_value_num as pointed out by Robert Moss and Daniel Toma. http://core.trac.wordpress.org/ticket/10649
  • 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.

    Thanks.

    • http://wpsnipp.com Kevin Chard

      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

        • http://wpsnipp.com Kevin Chard

           your orderby value is not correct,

          • Sangeeta Mevar

            please reply to Yashmistrey Kevin !!

          • http://wpsnipp.com Kevin Chard

            Sangeeta, I did, in above snippet you can see

            orderby=meta_value_num

    • Balkanboy1982

      Thanks

  • http://profiles.google.com/simonebernacchia simone bernacchia

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

    query_posts('meta_key=views&orderby=views&order=DESC');

    • http://wpsnipp.com Kevin Chard

      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

    • http://wpsnipp.com Kevin Chard

      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

        • http://wpsnipp.com Kevin Chard

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

  • http://twitter.com/Biggaa_de Biggaa.de

     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 ;)

    • http://wpsnipp.com Kevin Chard

      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.

      • http://twitter.com/Biggaa_de Biggaa.de

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

        • http://wpsnipp.com Kevin Chard

          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.

        • http://wpsnipp.com Kevin Chard

          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.

        • http://twitter.com/Biggaa_de Biggaa.de

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

        • http://wpsnipp.com Kevin Chard

          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.

    • http://wpsnipp.com Kevin Chard

      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?

    query_posts(‘meta_key=views&orderby=views&order=DESC&posts_per_page=5”)

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

    • http://wpsnipp.com Kevin Chard

      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!
    thanx!

    • http://wpsnipp.com Kevin Chard

       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.

  • http://www.iblognet.com/ Sahil

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

    • http://wpsnipp.com Kevin Chard

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

  • http://www.itechminder.com/ Zareen Khan

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

  • http://www.infologico.com Felipe Brandão

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

  • Dao Vu

    Thanks for your tips! Very nice

jqsnipp.com | we just launched jquery snippets website