列出多个父页面的子页面

时间:2015-09-12 04:48:52

标签: php wordpress

我需要列出几个父页面的子页面。

我有child_of属性,但它只列出一个ID,所以我可以列出Id-403但不能列出403,414,417。你们有什么想法我能做到吗?

我尝试了这个,但它没有使用多个页面。

  <div id="archive-thumbnails-listing" >
<?php $pages = get_pages(array('child_of' => 379, 'sort_column' => 'post_date', 'sort_order' => 'desc' )); ?>
<?php foreach ($pages as $page): ?>
<div class="thumb12wrap">
<a href="<?php echo get_the_permalink($page->ID); ?>">
<?php echo get_the_post_thumbnail($page->ID, 'full'); ?></a>
<div class="shade23desc" ><a class="desc"  href="<?php echo get_the_permalink($page->ID); ?>"><?php echo $page->post_title; ?></a></div>
</div>   
<?php endforeach; ?>
</div>

欢迎任何帮助!

1 个答案:

答案 0 :(得分:0)

根据documentationchild_of需要一个整数,而不是一个数组。因此,在您的情况下,您可能需要多次查询

$pages = [];

foreach ([403, 414, 417] as $id) {
    $pages = array_merge($pages, get_pages(['child_of' => $id]));
}

对于php&lt; 5.4,试试这个

$pages = array();

foreach (array(403, 414, 417) as $id) {
    $pages = array_merge($pages, get_pages(array('child_of' => $id)));
}

在查询后对结果进行排序......

usort($pages, function($a, $b) {
    if ($a->post_date === $b->post_date) {
        return 0;
    }
    return $a->post_date > $b->post_date ? -1 : 1;
});