Sorting posts by meta key and value

Posts related additional data are stored in a meta table called postmeta. Sometimes these meta data become very vital from your functionality point of view. Lets say we store the like counts of posts in terms of a meta key as _wti_like_count. This is fine as long as I am just using this to show the like count.

But can I use the same meta key to sort the posts by this value? Yes, we will discuss how we can sort the posts from a specific category. So in this case we will be modifying the category.php file inside the default theme folder since I am using the default theme.

// Get the requested category object
$category = $wp_query->get_queried_object();
$query = new WP_Query(
array (
'post_type' =>	'post',
'cat' => $category->cat_ID,
'order' => 'DESC',
'orderby' => 'meta_value_num',
'meta_key' => '_wti_total_count'

if ( $query->have_posts() ) :
while ( $query->have_posts() ) : $query->the_post();
/* Include the Post-Format-specific template for the content.
* If you want to overload this in a child theme then include
* a file called content-___.php
* (where ___ is the Post Format name) and that will be
* used instead.
get_template_part( 'content', get_post_format() );
_e( 'Nothing Found', 'twentyeleven' );

So we are doing the following things to achieve the functionality.

– Get the category id on the category page.

– Get the posts from the selected category.

– Loop through those posts and render them.

3 parameters are important here a) order b) orderby c) meta_key.

Since I need to show the posts by descending order of the like counts, I have used DESC value for order parameter. I want to consider the ordering based on meta numeric value, I have used meta_value_num for orderby parameter. I want to order with respect to _wti_like_count meta key so I have used the same for meta_key parameter. Thats all and you will see the posts sorted by the like count.


– If you need to sort the posts by unlike count, then use _wti_unlike_count for meta_key parameter.

– If you need to sort the posts by total count (like – unlike), then use _wti_total_count for meta_key parameter.

– if you want to use this feature for WTI Like Post plugin, then its available only for the pro version since in this version meta data are stored.

– For more details on WP_Query and its meta key/value parameters, please visit here.

Happy Coding 🙂

  1. Reply

    Thanks for the tutorial, it’s so useful,
    I am wondering, is there any function to display the number of posts using a specific metakey.
    if you can, please help me, I’d be so thankful

    1. Reply

      In above case, you can use


      to get the number of posts for the given metakey.

Leave a Comment

Your email address will not be published.

You may use these HTML tags and attributes: <a href=""> <abbr> <acronym> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Send a Message