Counting the number of posts (custom post type) Query problems

I’m trying to count the number of total posts of a custom post type “jobs”. My query just returns “0” when I know there are posts. I don’t think it is checking that the post type has posts, but I’m clueless as to why… any ideas?

<?php $jobs = new WP_Query(array( 'post_type' => 'jobs' ));?>
<?php if ($jobs->have_posts()) { 

    $count_posts = wp_count_posts()->publish; 
    if ( $count_posts == "1" ) { 
        echo "<h2>There is currently one vacancy...</h2>"; }
    else { echo "<h2>There are currently  $count_posts vacancies...</h2>"; }

} else { ?>
<h2>There are currently no vacancies.</h2>
<?php } ?>

Related posts

Leave a Reply

3 comments

  1. Replace these with your meta_key and meta_value:

    $meta_key = 'x';
    $meta_value = '2';
    
    $sql = "SELECT count(DISTINCT pm.post_id)
    FROM $wpdb->postmeta pm
    JOIN $wpdb->posts p ON (p.ID = pm.post_id)
    WHERE pm.meta_key = '$meta_key'
    AND pm.meta_value = '$meta_value'
    AND p.post_type = 'post'
    AND p.post_status = 'publish'
    ";
    
    $count = $wpdb->get_var($sql);
    echo "<p>Count is: $count</p>";