categories - If newest post of category is newest post in general, skip first post of category

admin2025-06-05  1

currently I am working on some customized blog templating and was wondering if there is any way to find out if the newest post of a category is also the newest post of the whole blog, so I can skip the first post of the category.

  • (1) is the newest post of the whole blog, which is in category (B).
  • (2) is the newest post of the category (A)
  • (3) is the newest post of the category (B), also is (1)

Basically I am asking how I would do this: If (3) = (1), skip (3) and show 2nd newest post in the category (in this case category (B)).


Additional information about my blog specifically, while the information above is more general/universal.

In my blog I also have a category that is excluded from the blog and only shown on a specific page. How would I exclude this category from the whole solution for the initial question? Would it simply be enough to write 'cat' => -123,?

currently I am working on some customized blog templating and was wondering if there is any way to find out if the newest post of a category is also the newest post of the whole blog, so I can skip the first post of the category.

  • (1) is the newest post of the whole blog, which is in category (B).
  • (2) is the newest post of the category (A)
  • (3) is the newest post of the category (B), also is (1)

Basically I am asking how I would do this: If (3) = (1), skip (3) and show 2nd newest post in the category (in this case category (B)).


Additional information about my blog specifically, while the information above is more general/universal.

In my blog I also have a category that is excluded from the blog and only shown on a specific page. How would I exclude this category from the whole solution for the initial question? Would it simply be enough to write 'cat' => -123,?

Share Improve this question asked Dec 7, 2018 at 14:28 marvinpoomarvinpoo 3033 silver badges18 bronze badges 0
Add a comment  | 

2 Answers 2

Reset to default 3

So the easiest way to do this would be to store the ID of the first post (1) then in each of your category loops you can use the post__not_in property like so:

// inside the first loop at the top.
$latest_post_id = get_the_ID();

// WP_Query for fetching each category
$category_query = new WP_Query( [
  // other parameters
  'post__not_in' => [ $latest_post_id ],
] );

Now to exclude a category in WP_Query you can use category__not_in which takes an array of category ID's. It's definitely worth checking out the wordpress codex for WP_Query

Just use ‘post__not_in’ param in your second query.

$query1 = new WP_Query...
$used_posts = array();

while ( $query1->have_posts() ) :
    $query1->the_post();
    $used_posts[]= get_the_ID();
    ...
endwhile;

$query2 = new WP_Query( array(
    'post__not_in' => $used_posts,
...
) );
转载请注明原文地址:http://conceptsofalgorithm.com/Algorithm/1749120352a316534.html

最新回复(0)