I’m using code below to spit out custom post types along with its categories, so
Category 1
—post 1
—post 2
Category 2
—post 1
—post 2
—post 3
etc.
That works well for me, however I would like to be able to sort my categories by count so orderby=count so catgories with larger amount of post will go to the top of the list at the moment that is not working in my code below, any idea why?
Many thanks for help
<?php
// List posts by the terms for a custom taxonomy of any post type
$post_type = 'our_drinks';
$tax = ('our-drinks');
$tax_terms = get_terms( $tax, 'orderby=count&order=ASC&hide_empty=0&hierarchical=true');
if ($tax_terms) {
foreach ($tax_terms as $tax_term) {
$args = array(
'post_type' => $post_type,
"$tax" => $tax_term->slug,
'post_status' => 'publish',
'order' => 'ASC',
'posts_per_page' => -1,
'caller_get_posts'=> 1
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) : ?>
<div class="category_title">
<?php echo $tax_term->name; ?>
</div>
<?php while ( $my_query->have_posts() ) : $my_query->the_post(); ?>
LOOP CONTENT GOES HERE
<?php endwhile; ?>
v<?php else : ?>
<?php endif; // if have_posts()
wp_reset_query();
} // end foreach #tax_terms
}
?>
You have
orderby=count
, which should be correct, but you also haveorder=asc
.order=ASC
means “smallest to largest”, at least with numbers. You want the opposite, “largest to smallest”. Useorder=DESC
instead. I suspect thatget_terms
is working, you’ve just told it something different that you actually want.Also, you have multiple queries in a loop and no real limits on it. That could result in a huge number of database queries and a noticeable impact on server performance. Be aware.
Since you didn’t tell how “this doesn’t work”, I will cover every problem that I can think right now.
register_taxonomy
function argumentquery_var => 'our-drinks'
, if you already have not one.If doesn’t work, or you have it already, change the args in
$my_query
query to:since your way of doing it is somewhat deprecated. Details about
tax_query
you can find here. Notice nested arrays – it’s not a bug 🙂