Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I'm using Jetpack to retrieve the number of views for each blog post. Is there a way to use this to generate a call to the most viewed posts and list them?

I've been wanting to do that for a long time now and I've looked into various plugins, but I'd prefer to hardcode this. Is there a way to write a code so that I could utilize the view count provided by Jetpack?

I looked at similar questions here, but none of them has been answered. A few commenters suggested plugins, but those have been abandoned by now. I couldn't find any up-to-date information.

Right now I'm only calling the "view count" within my single.php like that:

<?php print_page_views(get_the_ID('')); ?> 

For that I'm using a plugin called "Post 'n Page Views" that requires Jetpack. I tried looking for the plugin in the Wordpress Dabatase, but it doesn't seem to exist anymore.

I really would appreciate any kind of advice or updated information on this. Thank you so much!

share|improve this question

1 Answer 1

There is a Jetpack widget called Top Posts and Pages (Jetpack)

enter image description here

If you check out the source code for this widget, you can see that it's using the function stats_get_csv() to retrieve the stats:

$post_view_posts = stats_get_csv( 'postviews', array( 'days' => 2, 'limit' => 10 ) );

If you want to generate your custom most popular list, you can use for example:

if(function_exists('stats_get_csv')){
        $popular = stats_get_csv( 'postviews', array( 'days' => 2, 'limit' => 10 ) );
        echo '<ol>';
        foreach ( $popular as $p ) {
                printf('<li><a href="%s">%s</a>(%d)</li>', $p['post_permalink'], $p['post_title'], $p['views'] );
        }
        echo '</ol>';
} 

The function stats_get_csv( $table, $args = null ) is defined in:

http://plugins.trac.wordpress.org/browser/jetpack/tags/2.2.6/modules/stats.php#L1024

where the data is fetched from

http://stats.wordpress.com/csv.php

Note that stats_get_csv is caching the data for 5 minutes.

For an example of the what the stats_get_csv outputs and the API description, please check out this great answer.

share|improve this answer
    
Pretty much the same as here stackoverflow.com/a/13481345/2589071 –  Brad Dalton Jun 4 at 15:53
    
Thanks for the link, yes I agree, it looks similar. I think everyone trying to understand this function will go through similar process: use print_r to investigate the output, check out JetPack source code and view the api docs. When I work on questions I experiment with my own dev install and sometimes use print_r to get array outputs. I usually replace my own site url with example.com, which I use a lot in my answers. The text "Home page" was added by JetPack. When checking out the source of the HTML pages in Chrome, there are no quotes around text, so my output doesn't have them. –  birgire Jun 4 at 17:04
    
I thought you could use post_views_count in a WP_Query? –  Brad Dalton Jun 4 at 21:32
    
That's interesting, does the Jetpack stats module use the post_views_count meta key? I must have missed that ;-) I tried some keyword searches on the JetPack code base but I couldn't find it. But I've seen this method used without JetPack, to increment some post meta value on each page load. But it needs to be ajax based to handle cache plugins. Then it's handy to use WP_Query to display such a list. –  birgire Jun 4 at 21:44
    
No but there's several sites saying it can used in a query without a function but i doubt it. –  Brad Dalton Jun 4 at 22:08

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.