Using stats_get_csv to return a list of popular posts by views with thumbnails

I recently learned that if you have WordPress.com Stats installed, you can take advantage of stats_get_csv() (Part of the WordPress.com Stats Plugin).

<?php if ( function_exists('stats_get_csv') && $top_posts = stats_get_csv('postviews', 'days=-1&limit=4') ) : ?>
    <ol>
<?php foreach ( $top_posts as $p ) : ?>
        <li><a href="https://wordpress.stackexchange.com/questions/12189/<?php echo $p["post_permalink']; ?>"><?php echo $p['post_title']; ?></a></li>
<?php endforeach; ?>
    </ol>
<?php endif; ?>

That’s how I have my code set up now. The problem is that it shows pages as well as posts. Also, I want to add the featured thumbnail next to each item as well as an array of custom post types. Is this possible? If so, can someone help me out?

3 Answers
3

The API returns the following columns when you query the postviews table:

  • date
  • post_id
  • post_title
  • post_permalink
  • views

For my blog the post_id column was either empty or 0 (for the homepage). So unless you have good values there, you will have to work from the post_permalink value and determine whether it is a page or a post (via a query on the database or a regex on the URL?), and then query your database for the post thumbnail, because the WordPress.com stats API does not collect info on that.

Leave a Comment