Display post x of y within category

I’m currently using this class in my single blog posts to get a total post count and number my posts (post 89 of 90, etc…)

class MY_Post_Numbers {

private $count = 0;
private $posts = array();

public function display_count() {
    $this->init(); // prevent unnecessary queries
    $id = get_the_ID();
    echo sprintf( '<div class="post-counter">Post number<span class="num">%s</span><span class="slash">/</span><span class="total">%s</span></div>', $this->posts[$id], $this->count );
}

private function init() {
    if ( $this->count )
        return;
    global $wpdb;       
    $posts = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'post' ORDER BY post_date " ); // can add or change order if you want 
    $this->count = count($posts);

    foreach ( $posts as $key => $value ) {
        $this->posts[$value] = $key + 1;
    }
    unset($posts);
   }
}
$GLOBALS['my_post_numbers'] = new MY_Post_Numbers;
function my_post_number() {
$GLOBALS['my_post_numbers']->display_count();
}

I would like to make it category specific. Is that possible? So instead of 89 of 90 it will say 8 of 10 because it’s only looking within that post’s specific category.

Related posts

1 comment

Comments are closed.