使用get_post进行分页似乎有效,但没有显示链接

时间:2013-03-21 作者:elclanrs

我有一个自定义页面模板,我想从一个帖子类型中查询2篇帖子,从另一个帖子类型中查询1篇帖子。我将其设置为:

$paged = get_query_var(\'paged\') ? get_query_var(\'paged\') : 1;

$articles = get_posts(array(
  \'post_type\' => \'articles\',
  \'numberposts\' => 1,
  \'posts_per_page\' => 1,
  \'paged\' => $paged
));

$news = get_posts(array(
  \'post_type\' => \'news\',
  \'numberposts\' => 2,
  \'posts_per_page\' => 2,
  \'paged\' => $paged
));

$all_posts = array_merge($articles, $news);
然后我做循环:

<? foreach ($all_posts as $post): setup_postdata($post) ?>
  <? get_template_part(\'content\') ?>
<? endforeach ?>
最后我添加了分页。我尝试了WP PageNavi以及常规WordPress功能。

wp_pagenavi();
next_posts_link();
previous_posts_link();
当我转到页面时,我可以看到3篇文章(1篇文章,2条新闻),但没有分页。如果我手动导航到/page/2, /page/3, 等等。它似乎可以工作并显示接下来的3个帖子,但只显示previous_posts_link 出现了,而不是next_posts_link 或PageNavi。

现实世界的例子稍微复杂一些query_postsWP_Query 不是选项。

如何使分页正常工作?

1 个回复
SO网友:fuxia

你的$paged 第一个变量在主查询中设置。只有一页,因为它是一页。这个get_posts() 打电话不会影响这一点。因此,所有可用页面的数量永远不会超过当前页面,并且您无法获得下一个页面链接。

解决方案:filter pre_get_posts 并在此处设置您的帖子类型。

结束

相关推荐

Gallery Pagination by Row

我在以下位置创建了一个图片库:http://ellenandjosh.com/?page_id=5. 目前,我有一个循环,在一定数量的图像之后显示分页:http://pastebin.com/N6nRRUei.通常情况下,这很好。。。但通常我没有不同宽度的图像。WordPress按高度裁剪图像,宽度可变。我想做的是在三行图像之后,然后添加分页按钮。。。而不是在一定数量的图像后显示分页按钮。。。这可能吗?第1页还可以,虽然底部行中可能会有更多图像-第2页只有两行,第3页第三行只有一个图像-尽管有更多图像。。