具有多个POST类型的自定义循环的分页

时间:2013-04-09 作者:Kris Tryber

我意识到这似乎是一个常见的问题,我已经阅读了很多帖子,但这毫无意义。我想知道是否有人可以看看我的代码。

我想做的是构建一个主页,将自定义帖子类型中的帖子拉到一个循环中。看起来我读到的几乎每一篇文章都把分页称为基于类别的分页。在我的情况下,我只是有完全不同的帖子类型,我是按类型来命名的。

http://pastie.org/7378084

提前谢谢你

2 个回复
最合适的回答,由SO网友:Milo 整理而成

要更改主查询,首选方法是使用pre_get_posts 行动而不是呼叫query_posts 在模板中。在这一点上,可以很有把握地说query_posts 在模板中是完全错误的,尽管遗憾的是,你会在网上看到它的一百万个例子。

主查询发生在加载模板之前,WordPress根据该查询的结果决定要做什么,因此在模板中处理查询将充满潜在的错误。运行覆盖原始查询的第二个查询也是浪费资源,最好在查询发生之前更改查询。

所以这里我们使用conditional tags 检查我们是否在头版并运行主查询。需要注意的是,此操作是在每个查询上执行的,因此我们必须明确要更改哪个查询。

function wpa_post_types_front_page( $query ) {
    if ( $query->is_front_page() && $query->is_main_query() ) {
        $query->set( \'post_type\', array(
            \'post\',
            \'product\',
            \'flights\',
            \'touristdestinations\'
        ) );
    }
}
add_action( \'pre_get_posts\', \'wpa_post_types_front_page\' );
现在WordPress将查询您所有的帖子类型,它将知道它在哪个页面上,以及存在多少页面,因此模板中的分页功能应该可以正常工作,无需做任何进一步的操作。

SO网友:Kris Tryber

好的,这就是我现在想到的。我根本无法在那里获得页面导航。

http://pastebin.com/1w3th07P

这实际上显示了下一个posts链接,但该链接只是重新加载了同一页面,但我的url会更改为第2页。

任何帮助都将不胜感激,谢谢。

克里斯

结束

相关推荐

Gallery Pagination by Row

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