ADD_REWRITE_RULE-工作正常,但无法进行分页

时间:2014-10-01 作者:Jonnyauk

我的设置如下:

分类法中称为“地区”的术语,如“苏格兰”等,使用单一分类法的各种帖子类型,我使用以下重写规则实现了以下格式的功能性永久链接:

add_rewrite_rule(
    \'region/([^/]+)/([^/]+)/([^/]+)/?\',
    \'index.php?taxonomy=region&term=$matches[1]&post_type=$matches[3]\',
    \'top\'
);
这给了我一个有效的URL,如:
http://example.com/region/scotland/type/event/
这正是我需要的(地区/[苏格兰]=分类法,类型/[事件]=帖子类型)

然而,我尝试添加一个额外的add\\u rewrite\\u规则来处理以下URL格式的分页(我真的不太熟悉regex!)但我只是无法使分页功能正常运行-我的目标是实现以下目标:

http://example.com/region/scotland/type/event/page/1
http://example.com/region/scotland/type/event/page/2
http://example.com/region/scotland/type/event/page/3

我想我已经差不多做到了,因为我有一条重写规则可以正常工作了——但在尝试了许多不同的事情之后,我只是无法实现正确的正则表达式/重写规则组合来实现分页。此查询的permalink不太好,它的功能正确:

http://example.com/index.php?taxonomy=region&term=scotland&post_type=event&paged=1

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

您是否尝试过:

The main one:

add_rewrite_rule( \'region/([^/]+)/type/([^/]+)/?\', \'index.php?taxonomy=region&term=$matches[1]&post_type=$matches[2]\', \'top\' );

For pagination

add_rewrite_rule( \'region/([^/]+)/type/([^/]+)/page/([0-9]{1,})/?\', \'index.php?taxonomy=region&term=$matches[1]&post_type=$matches[2]&paged=$matches[3]\', \'top\' );
出于好奇,我换了一个([^/]+) 因为这似乎不是一个动态变量。

如果分页不起作用,请尝试切换其声明的顺序,即在其他重写规则之前或之后。很多问题都与它们被声明的顺序有关,这些顺序会影响先运行哪个规则。

而且the Rewrite Rules Inspector plugin 可以非常有帮助地帮助您确定正在为特定URL运行哪些重写规则。

SO网友:user671420

订购事宜,您应写下:

add_rewrite_rule( \'region/([^/]+)/type/([^/]+)/page/([0-9]{1,})/?\', \'index.php?taxonomy=region&term=$matches[1]&post_type=$matches[2]&paged=$matches[3]\', \'top\' );
之前

add_rewrite_rule( \'region/([^/]+)/type/([^/]+)/?\', \'index.php?taxonomy=region&term=$matches[1]&post_type=$matches[2]\', \'top\' );

结束

相关推荐

foreach pagination

我正在寻求有关如何对foreach输出分页的帮助。我查看了其他问题和答案,但找不到适合我的解决方案,也找不到可以自己解决的解决方案。现在,下面的代码将所有内容输出到表行中。当然,我的问题是,它将所有数据转储到一个页面上——因此我需要分页。我想为页面上的每11项分页。这一页是一份杂志档案,每年有11期——因此每一页相当于我们杂志的1年。第一页应该是第1-11期,第二页应该是第12-22期,等等。我们有10年的杂志期。任何帮助都将不胜感激。非常感谢。<table> <tr>&#