Count posts, pages, comments and custom post types

This is a selection of snippets to display counts for posts, pages, custom post types, comments. Posts and pages have a publish and draft status while comment counts include moderated, approved, spam, trash, total.

// count posts
$n_post = wp_count_posts();
$n_post_publish = $n_post->publish;
$n_post_drafts = $n_post->draft;

// count pages
$n_page = wp_count_posts('page');
$n_page_publish = $n_page->publish;
$n_page_drafts = $n_page->draft;

// count custom post types
$n_cpt = wp_count_posts('CUSTOM_POST_TYPE_NAME');
$n_cpt_publish = $n_cpt->publish;
$n_cpt_drafts = $n_cpt->draft;

// count comments
$n_comments = wp_count_comments();
$n_comments_moderated = $n_comments->moderated;
$n_comments_approved = $n_comments->approved;
$n_comments_spam = $n_comments->spam;
$n_comments_trash = $n_comments->trash;
$n_comments_total = $n_comments->total_comments;
        <!-- posts -->
	<li>Post publish: <? echo $n_post_publish; ?></li>
	<li>Post drafts: <? echo $n_post_drafts; ?></li>
        <!-- pages -->
	<li>Page publish: <? echo $n_page_publish; ?></li>
	<li>Page drafts: <? echo $n_page_drafts; ?></li>
        <!-- custom post types -->
	<li>Custom post publish: <? echo $n_cpt_publish; ?></li>
	<li>Custom post drafts: <? echo $n_cpt_drafts; ?></li>
        <!-- comments -->
	<li>Coments moderated: <? echo $n_comments_moderated; ?></li>
	<li>Coments approved: <? echo $n_comments_approved; ?></li>
	<li>Coments spam: <? echo $n_comments_spam; ?></li>
	<li>Coments trash: <? echo $n_comments_trash; ?></li>
	<li>Coments total: <? echo $n_comments_total; ?></li>

Comments  Leave a Reply

  1. Hi, love the code,it works great. One question though, how do I get this count to display on the front end? Specifically for a variety of different Custom Post Types.

  2. Hi Kevin, I am from Turkey so sorry my bad English language. I have a download a web site and I want to see Custom field count. For exapmple; read/download: 100/37 what can I do?

  3. thanks its working

  4. May I congratulate you on your intelligent work.You have won me over and gained a new fan. Compared to most articles on the web this is a joy to read, I am overjoyed that I came upon your work. I promise to be linking to this on all my blogs.

    1.  Wow thanks, this is very nice to hear. I’m glad that I could post content that is of such value to people that they post great comments like this. Thanks again

  5. Hi,your code for showing the number of pages doesn’t work,you should change pages parameter in line 7 to page in order to work

    1. Good catch on the typo thanks, updated the post.

Add a Comment

We're glad you have chosen to leave a comment. Please keep in mind that all comments are moderated according to our privacy policy, and all links are nofollow. Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.

WordPress Launch Checklist

The Ultimate WordPress Launch Checklist

We've compiled all the essential checklist items for your next WordPress website launch into one handy ebook.
Yes, Send Me the Free eBook!