2014-09-26 63 views
0

我正在使用下面的一段php来获取页面以显示其子页面的内容。 我只想显示前10个结果,然后显示'显示更多'按钮。 我试图通过post_excerpt(L6)替换post_content,但没有奏效。我错过了什么?在wordpress中的几个页面上显示get_pages结果

<?php 
    $mypages = get_pages(array('child_of' => $post->ID, 'sort_column' => 'post_date', 'sort_order' => 'desc')); 

    foreach($mypages as $page) {  
     $content = $page->post_content; 
     if (! $content) // Check for empty page 
      continue; 

     $content = apply_filters('the_content', $content); 
    ?> 
     <h2><a href="<?php echo get_page_link($page->ID); ?>"><?php echo $page->post_title; ?></a></h2> 
     <div class="entry"><?php echo $content; ?></div> 
    <?php 
    } 
?> 
+0

有你试过通过for循环运行它,并将循环的长度设置为10?或者,如果数据以页面数组的形式返回,则使用array_slice?不知道我是否理解你的问题。 – 2014-09-26 19:59:59

+0

嗯,但在这种情况下,我将结果限制在前10个结果中,但没有显示其余结果的按钮,不是? – mrtnmgs 2014-09-26 20:52:12

回答

0

你需要告诉get_pages你想要的页码。然而,看着the get_pages documentation我没有看到任何明确的页码参数;相反,我怀疑你会想要offset参数。考虑尝试:

$mypages = get_pages(array('child_of' => $post->ID, 'sort_column' => 'post_date', 'sort_order' => 'desc', 'offset' => ($posts_per_page * $paged))); 

'offset' => ($posts_per_page * ($page_number - 1))计算乘以针对您提供总得$page_number全球$posts_per_page(在您的阅读设置中定义)。由于您要从指定的点开始,因此页码会减1;如果每页有10篇文章,并且希望从第二页开始,那么您希望显示的第一篇文章是索引#10(使用零索引列表),并通过#19进行展示。

你如何选择,以确定被请求的页面是留给你的自由裁量权,但其中一个方案是提供一个查询字符串参数(如pagenumber=3)和引用,通过声明呼吁get_pages前:

$page_number = is_numeric($_GET['pagenumber']) ? $_GET['pagenumber'] : 0) 
+0

谢谢贾斯汀。我没有试图在页面中分割结果,然后调用特定的结果。我创建的页面非常长,加载时间是一个问题。我试图仅显示部分结果,然后允许用户单击页面底部的按钮以查看更多内容。 – mrtnmgs 2014-09-28 14:47:26