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

时间:2015-08-14 作者:HRone

我有个问题,重写规则在这里很好:

实例com/resources/
示例。com/资源/文章/

但当我使用分页到下一页时,我在这里得到一个404:

实例com//resources/articles/page/2//br>示例。com//resources/articles/page/3//br>示例。com//参考资料/文章/第页/4/

我能写两条重写规则,但现在不是404页,而是用相同的内容刷新页面,但URL更改这里是我的重写规则,希望有人能帮我?

add_rewrite_rule( \'resources/([^/]+)/([^/]+)/?\', \'index.php?taxonomy=res_category&term=$matches[1]&post_type=$matches[2]\', \'top\');
//added for page turn on pagination 
add_rewrite_rule(\'resources/([^/]+)/([^/]+)/page/([0-9]{1,})/?\', \'index.php?taxonomy=res_category&term=$matches[1]&post_type=$matches[2]&paged=$matches[3]\', \'top\');  
感谢您的帮助。

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

我想出来了!我尝试匹配的参数太多,必须将“[^/]+”替换为“(.+?)”我只需要一条重写规则就可以做到这一点,这是最后的代码:

add_rewrite_rule( \'resources/(.+?)(/page/([0-9]+))?/?$\', \'index.php?taxonomy=res_category&term=$matches[1]&paged=$matches[3]\', \'top\');
现在我遇到的问题是,如果我点击一篇文章,我的帖子本身就会得到404???有什么线索吗??

SO网友:Kevin Fodness

乍一看,您的代码看起来很可靠。两条建议:

1) 尝试将较长的重写规则置于较短的重写规则之前。有可能第一个正在匹配(因为它是较长的一个的子集),然后不继续检查较长的一个。

2) 无论何时修改重写规则,都必须刷新并重新加载重写规则才能生效。最简单的方法是转到“设置”>“永久链接”,然后单击“保存”。

编辑:明白了。将第二条重写规则更改为resources/([^/]+)/page/([0-9]{1,})/?. 您的通配符段太多。

结束