1

Building the category.php I'm curious to know if there is a better way to get the count of posts without wp_query? In the past I've called:

and to build a separator after each post but not the last on the page or last in get_option('posts_per_page') I've used:

$category = get_queried_object();
$category_total = $category->count;

From research I did see How to get Total Post In a Selected category which was authored in 2011. wp_count_posts() counts all posts in a blog which I dont think would be good on performance.

$category = get_category($id);
$count = $category->category_count;

From Count how many posts in category I think requires wp_query? Is there a better way to get the count of posts in a category for category.php?

  • What count do you actually need? The total number of posts in a category, or the number of posts on the current page? – Jacob Peattie Dec 18 '18 at 3:38
  • both actually to render current design which is why I'm also pulling 'posts_per_page'. – DᴀʀᴛʜVᴀᴅᴇʀ Dec 18 '18 at 3:39
1

What you've got is basically correct. This is the correct method for getting the total number of posts in the currnet category:

$category = get_queried_object();
$category_total = $category->count;

There shouldn't be any performance impact from using this, as the count property is only updated when new posts are published, and doesn't need to be calculated each time it's used.

To get the number of posts on the current page though, get_option( 'posts_per_page' ) is not the best option, because it will be the incorrect number on the last page, which could have less than the total number of posts per page.

To get that number you need to check the global $wp_query object:

global $wp_query;
$post_count = $wp_query->post_count;
  • but global $wp_query; $post_count = $wp_query->post_count; renders what's left in the category and I need to get what was set in settings and I've only been able to do that with get_option('posts_per_page') – DᴀʀᴛʜVᴀᴅᴇʀ Jan 4 at 15:32
  • And that's how you get it. What's wrong with that? – Jacob Peattie Jan 4 at 15:46
  • think I might be over analyzing it again. I was looking to see if there was another way to measure between what was set in backend and how many posts show for cat. – DᴀʀᴛʜVᴀᴅᴇʀ Jan 4 at 15:53
  • I don't understand what you're asking for, or what you're trying to do. There's 3 numbers: The total count of the posts in the category; the number of posts on the current page; and the setting for the number of posts to show per-page. What else do you need? – Jacob Peattie Jan 4 at 15:59
  • Sorry, working without coffee should be illegal because my brain wasn't functioning. – DᴀʀᴛʜVᴀᴅᴇʀ Jan 4 at 16:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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