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.
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.
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,
?
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,
...
) );