1

I want to show information about some categories on my site, which would include among other things:

  • A link to the first post in the category
  • A link to the last post in the category
  • The number of posts in the category

My plan so far was to use this in a WP_Query

$args= array(
      'cat'=>$comic,
      'orderby'=>'post_date',
      'order'=>'DESC',
      'post_type'=>'post',
      'posts_per_page'=>'-1');

And from there extract the information. But I'm not sure how to get to the first and last result without going through the whole loop, how to get the result count, or if using a WP_Query for this will slow the site down if the category grows too big.

1 Answer 1

3

You could use two separate query to get first & last post based on date.

$args = array(
    'cat' => $comic,
    'orderby' => 'post_date',
    'post_type' => 'post',
    'posts_per_page' => '1'
);

$first_post = $last_post = null;

// get first post
$first_post_query = new WP_Query( $args + array( 'order' => 'DESC' ) );
if ( $first_posts = $first_post_query->get_posts() ) {
    $first_post = array_shift( $first_posts );
}

// last post
$last_post_query = new WP_Query( $args + array( 'order' => 'ASC' ) );
if ( $last_posts = $last_post_query->get_posts() ) {
    $last_post = array_shift( $last_posts );
}

// post count: method 1
$post_count = $last_post_query->found_posts;


// post count: method 2
$category = get_category( $comic );
$post_count = $category->count;

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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