Wordpress - 限制get_pages显示5个项目

时间:2011-05-26 11:09:48

标签: php wordpress

如何限制get_pages只显示5个项目?

我认为将'number' => 5添加到数组会将其限制为5,但它不会显示任何内容。这是我的代码:

<?php 
$pages = get_pages(array('post_type' => 'page','sort_column' => 'menu_order','sort_order' => 'ASC','child_of' => 765));

foreach($pages as $post)
{
setup_postdata($post);
$fields = get_fields();
?>
        <p><?php echo $fields->start_date; ?> <a href="<?php echo get_page_link($post->ID) ?>"><?php echo substr($fields->event_title,0,24) . "..."; ?></a></p>
<?php
}

wp_reset_query();
?>

4 个答案:

答案 0 :(得分:3)

我知道这是一个老问题,但无论如何我会发布它,以防有人试图限制结果并遇到同样的问题:

我不知道它是错误还是预期的功能,但是当你使用带有“child_of”的get_pages或者“hierarchical”为TRUE时,get_pages也会尝试获取孙子,返回NULL。

如果您不需要孙子,请将“child_of”替换为“parent”,并将“hierarchical”添加为FALSE,因此您的查询将如下:

$pages = get_pages(array(
   'post_type' => 'page',
   'sort_column' => 'menu_order',
   'sort_order' => 'ASC',
   'parent' => 765,
   'hierarchical' => FALSE
));

这应该有用。

WordPress 3.4.2

答案 1 :(得分:1)

确保您正在运行wordpress 2.8,因为在该版本之后添加了number

http://codex.wordpress.org/Function_Reference/get_pages

答案 2 :(得分:1)

number

中的get_pages()属性似乎有误

我使用get_children

解决了这个问题
$pages = get_children(array(
   'numberposts' =>1,
   'post_parent' => $heading_page->post_id
   ));

并使用post_parent代替child_of

答案 3 :(得分:0)

根据manualnumber确实是正确的参数。

它是在2.8中添加的。也许你正在运行旧版的Wordpress?