$conf, $runtime; function_exists('chdir') AND chdir(APP_PATH); $r = 'mysql' == $conf['cache']['type'] ? website_set('runtime', $runtime) : cache_set('runtime', $runtime); } function runtime_truncate() { global $conf; 'mysql' == $conf['cache']['type'] ? website_set('runtime', '') : cache_delete('runtime'); } register_shutdown_function('runtime_save'); ?>categories - If newest post of category is newest post in general, skip first post of category|Programmer puzzle solving
最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

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

matteradmin10PV0评论

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,
...
) );
Post a comment

comment list (0)

  1. No comments so far