将分页添加到单个帖子页面内的Sub-wp_Query

时间:2012-07-18 作者:gravy

因此,我的自定义wordpress主题/站点有许多场所,例如“foo”,它有许多活动和评论。

所以一个场地最终会有一个URL,如,

http://www.example.local/places/my-place-name/
但除了呈现场馆的内容(the\\u content())。。。等)我在该地点呈现活动和评论(该地点是“家长”,因为活动和评论帖子类型的地点是“家长”)

因此,我正在为这两种帖子类型运行一个自定义的wp\\u查询。我遇到了麻烦,因为我无法对自定义wp\\U查询的结果分页。即使我想通过从URL中获取页码,然后在wp\\U查询中设置“偏移量”来运行自己的分页例程,wordpress也不喜欢URL末尾的其他参数。例如,如果我转到:

http://www.example.local/places/my-place-name/mypage/2/
简单地呈现404 not found。我希望避免使用查询字符串样式的URL,例如

http://www.example.local/places/my-place-name/?mypage=2
因为这看起来有点乱。

任何关于如何在帖子页面中为自定义wp\\u查询进行分页的指导(甚至如何让wordpress允许我在URL中添加其他分页参数)都会很好。

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

您需要添加一个查询变量并重写规则以使其正常工作。

首先,将查询变量添加到主题的functions.php:

add_filter( \'query_vars\', \'wpa58904_query_vars\' );
function wpa58904_query_vars( $query_vars ){
    $query_vars[] = \'my_page\';
    return $query_vars;
}
然后使用所需的模式添加重写规则,以设置自定义页面查询变量:

add_action( \'init\', \'wpa58904_rewrites\' );
function wpa58904_rewrites(){
    add_rewrite_rule(
        \'places/([^/]+)/mypage/([0-9]+)/?$\',
        \'index.php?venue=$matches[1]&my_page=$matches[2]\',
        \'top\'
    );
}
然后,您可以在模板中访问my_page 具有

get_query_var( \'my_page\' );
在添加重写规则以刷新重写缓存后,请确保访问永久链接设置页面。

结束

相关推荐

Pagination on 2nd loop

好的,我正在创建一个业务列表网站,该网站使用列表“类型”的自定义分类法。我需要在分类法归档页面上显示两个循环,一个用于“赞助”列表,另一个用于常规列表。分类法存档:http://pastie.org/3187162分页功能:http://pastie.org/3187168这两部分都在做我想做的事情,但有一个问题:在一个特定类别中大约有50个非赞助商列表,但第二个查询最多有5个“页面”(即,如果我将posts\\u per\\u page设置为5,则有25个列表,如果我将posts\\u per\\u p