列出最近的5个子页面

时间:2012-11-25 作者:passatgt

我为图库创建了分层自定义帖子类型。父页面是库,子页面是相册。我想在侧边栏上显示最新的相册(因此基本上是最新的子页面)。

\'post_parent\' => 0
我只在法典中找到这个,但这与我想要的正好相反,这将只列出父页面。以下是我目前的代码:

$albums = new WP_Query(array(
    \'post_type\' => \'gallery\',
    \'posts_per_page\' => 6
));

1 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

假设您知道(或知道如何获得)$id (作为父帖子的整数),使用the post_parent parameter:

$albums = new WP_Query(array(
    \'post_type\' => \'gallery\',
    \'posts_per_page\' => 6,
    \'post_parent\' => $id
));
根据此评论编辑:

我不知道家长的帖子。我想列出任何父页面中最近的子页面。

虽然只查询父页面很容易(通过传递\'post_parent\' => 0), 只查询子页面并不是那么简单。

一种方法是查询所有gallery 帖子,循环浏览,并添加任何具有post_parent 转换为另一个变量;然后输出该变量。

// Query all gallery posts
$all_albums = new WP_Query( array(
    \'post_type\' => \'gallery\',
    \'posts_per_page\' => -1
) );

// Array to hold latest albums
$latest_child_albums = array();
// Latest album counter
$latest_albums_count = 0;
// If we already have 5, no need to keep looping
while ( 5 < $latest_albums_count ) {
    // Loop through each gallery post
    foreach ( $all_albums as $album ) {
        // If the current post has a parent
        if ( $album->post_parent != 0 ) {
            // Add it to the latest albums array
            $latest_child_albums[] = $album;
            // Increment the counter
            $latest_albums_count++;
        }
    }
}

// Loop through the array of latest albums
if ( $latest_child_albums->have_posts() ) : while ( $latest_child_albums->have_posts() ) : $latest_child_albums->the_post();
    // Loop content here
endwhile; endif;
// Be kind; rewind.
wp_reset_postdata();

结束

相关推荐

WP_Query breaks pagination

我已经研究这个问题一周了。我搜索了无数没有回答这个问题的帖子。我的wp\\u查询似乎破坏了分页。我已经在这里浏览了很多关于wp\\U查询和分页的帖子,但仍然毫无乐趣。据我所知,它的设置是正确的。我有一个实例,它将在一个页面中显示所有帖子,而在另一个页面中,它会重复每个页面上的内容。请参阅下面的代码,以获取带注释的精简版本。有人知道问题出在哪里吗?<?php /* Let\'s asume that this is the search query in the