向没有固定变量和分页的页面添加重写规则

时间:2016-04-20 作者:Malisa

我设置了一个页面,用户可以通过标签搜索帖子,例如四个类别。按房间-按风格-按颜色-按功能,每个都有一个未定义的子类别数量,这取决于每个类别关联的标签数量(这些类别和子类别是硬编码的),效果很好,我有一个重写规则:

 add_rewrite_rule(\'discover/interiors/interior-results/(.+)\', \'index.php?pagename=discover/interiors/interior-results&tag1=$matches[1]\', \'top\' );
我这样做是因为我不知道用户会选择多少变量,所以可能是:

 discover/interiors/interior-results/bedroom/
 discover/interiors/interior-results/bedroom/hotel-chic
 discover/interiors/interior-results/bedroom/hotel-chic/white
等等。。。

正如我所说,这很好,但现在我发现,随着帖子数量的增加,我尝试添加分页,在反复琢磨为什么它不起作用后,我意识到现在分页正被重写规则读取为标记(/页/2/)

是否可以创建一个重写规则来读取x个变量,然后最后一个是分页?

EDIT 在发帖前和发帖后,我在这里看到了其他类似的帖子,对他们来说,重写规则是:

 add_rewrite_rule(\'discover/interiors/interior-results/(.+)/page/?([0-9]{1,})/?$\', \'index.php?pagename=discover/interiors/interior-results&tag1=$matches[1]&paged=$matches[2]\', \'top\' );
为他们工作,我可以看到他们去了哪里,但不幸的是,这打破了第一页(404),第/2页实际上是第1页的内容,所以。。如果有人能给我指引正确的方向,我将一如既往地感谢你的帮助。

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

让它工作起来,将正则表达式从(++)更改为(*.*)

可能对其他搜索相同的重写的搜索和分页有帮助。

 add_rewrite_rule(\'discover/interiors/interior-results/(.*)/page/([0-9]{1,})/?\', \'index.php?pagename=discover/interiors/interior-results&tag1=$matches[1]&paged=$matches[2]\', \'top\' );
 add_rewrite_rule(\'discover/interiors/interior-results/(.*)\', \'index.php?pagename=discover/interiors/interior-results&tag1=$matches[1]\', \'top\' );

相关推荐

change pagination url

目前,我的分页页面URL为:http://www.example.com/category_name/page/2但我需要将此URL结构更改为:http://www.example.com/category_name/?page=2等有什么解决方案吗?