查询每个类别的最新帖子

时间:2018-07-25 22:18:04

标签: php wordpress

我知道关于wp_queries的问题很多,但是没有一个能完全回答我想要的问题。

我不知该如何从我的每个博客类别中查询1条最新帖子,但使用[]表示法而不是数组:

function get_latest_posts($query_args, $grid_name) {
  $categories = array(1593, 1594, 1595, 1596, 1597);

  if ($grid_name == 'get_latest_posts') {
    $query_args['posts_per_page'] = 1;
  } 
  return $query_args;
}
add_filter('tg_wp_query_args', 'get_latest_posts', 10, 2);
// This returns one post but just one post, not one post per category

使用这种样式的query_args而不是“传统”数组,将可能具有以下内容:

foreach($categories as $category) {
  return $query_args;
}
// Something like this would be awesome ❥

先谢谢您!抱歉,我是个新手。

1 个答案:

答案 0 :(得分:0)

尝试一下:

<?php
function post_from_each_category(){
  $categories = array(1593, 1594, 1595, 1596, 1597);
  $posts = [];
  foreach($categories as $category) {
    $posts[] = get_posts([
      'post_type' => 'post',
      'posts_per_page' => 1,
      'tax_query' => [
        [
          'taxonomy' => 'category',
          'field'    => 'term_id',
          'terms'    => [$category],
        ],
      ],
    ]);
  }
  return $posts;
}

我认为它将解决您的问题。