仅从父级获取1个最近修改的子帖子

时间:2021-06-30 作者:Themer

我有两种自定义帖子类型:

戏剧是父母,插曲是孩子。现在,例如,我添加了2部戏剧,然后添加了剧集(戏剧1,戏剧2作为家长):

Drama 1

  1. --第1集
  2. --第2集**更新
  3. --第3集
  4. --第4集**更新

    Drama 2

    1. --第1集
    2. --第2集
    3. --第3集
    4. --第4集
    5. --第5集
    6. --第6集**更新
    7. **更新显示该集最近更新。

      在主页上,我想显示来自;插曲“;按post\\u修改的post类型订单。因此,通过上述示例,主页上显示了以下内容:

      按post\\u modified排序。。

      第8集-第2部-第7集-第2部-第1部-第4部-第1部-第1部

    它显示了post\\u modified订购的所有12集。

    THE PROBLEM..

    由于我只有2部电视剧,我只想显示这些电视剧中最近更新的2集(每位家长只发1篇帖子),我不想显示所有的剧集。因此,主页上所需的输出应仅为以下两集:

    第8集-第2集-第4集-第1集我使用WP\\u查询来显示剧集,但它会显示所有帖子。我如何限制每部剧的剧集数,并从每部剧中仅获得1集最新更新的剧集。

     $wp_query = new WP_Query( array(
        \'post_type\' => \'episode\',
        \'orderby\' => \'post_modified\',
        \'order\'   => \'DESC\',
        \'suppress_filters\' => true,
        \'posts_per_page\' => 100,
        \'paged\' => $paged
        
     ));
    
    编辑-更新:重新措辞并删除了另一个类似的问题。

    编辑2:戏剧和剧集的数量只是举例,实际戏剧数量超过20K,剧集数量超过300K。

1 个回复
SO网友:Harrison

我想也许你不需要Wp\\u查询。我相信你能做到

$episodes_for_front_page = array();

//get the two dramas
$dramas = get_posts(array(\'post_type\' => \'drama\'));

foreach ($dramas as $drama){
  
  //get all the episodes belonging to that drama, sorted by most recent update
  $episodes = get_posts(
    array(
      \'post_type\' => \'episode\',
      \'post_parent\' => $drama->ID,
      \'orderby\' => \'post_modified\',
      \'order\' => \'DESC\'
    )
  );

  //add the most recent episode to the list of posts to display
  $episodes_for_front_page[] = $episodes[0];
}

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post