添加_重写_规则和分页问题

时间:2011-05-30 作者:Ludo

我有一个问题,写一个正确的重写规则。

基本上,以下是我想要的url示例:

/myPage/mySuPage

然后分页也一样
/myPage/mySuPage/page/3

然后是基本页面,有2个参数,没有分页
/myPage/mySuPage/param1/param2

然后,有2个参数和分页的/myPage/mySuPage/param1/param2/page/3

或多或少,我让它为每种情况使用不同的规则,但如果我把它们排成一行,什么都不起作用。

以下是我写的规则:

add_rewrite_rule(
    \'myPage/mySuPage/([^/]*)/([^/]*)/?\',
    \'index.php?pagename=myPage/mySuPage&param1=$matches[1]&param2=$matches[2]\',
    \'top\' );

add_rewrite_rule(
    \'myPage/mySuPage/([^/]*)/([^/]*)/page/([0-9]{1,})?\',
    \'index.php?pagename=myPage/mySuPage&param1=$matches[1]&param2=$matches[2]&pageds=$matches[3]\',
    \'top\' );


add_rewrite_rule(
    \'myPage/mySuPage/(.+?)(/page/([0-9]+))?/?$\',
    \'index.php?pagename=myPage/mySuPage&param1=$matches[1]&param2=$matches[2]\',
    \'top\' );

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

前两条重写规则的结尾不是$, 这表明URL应停止在此处。所以myPage/mySuPage/param1/param2/page/3 仍然会与第一个模式匹配,因为它可以忽略/page/3 在结尾部分。接下来的重写规则将永远不会被使用。

具有my Rewrite analyzer plugin 我能够将您的重写规则简化为以下两个:一个没有参数,只有可选分页,另一个有参数,有可选分页。将这两个参数合并为一个是行不通的,因为可选参数会“吃掉”分页部分。

add_rewrite_rule(
    \'myPage/mySuPage(/page/([0-9]+)?)?/?$\',
    \'index.php?pagename=myPage/mySuPage&pageds=$matches[2]\',
    \'top\'
);

add_rewrite_rule(
    \'myPage/mySuPage/([^/]*)/([^/]*)(/page/([0-9]+)?)?/?$\',
    \'index.php?pagename=myPage/mySuPage&param1=$matches[1]&param2=$matches[2]&pageds=$matches[4]\',
    \'top\'
);

结束

相关推荐

Pagination with custom loop

我的问题可能是Pagination not working with custom loop, 但有一种不同。我使用自定义循环来显示flash游戏。我想按类别在游戏页面上分页。类别php:<?php if ($cat) { $cols = 2; $rows = 4; $paged = ((\'paged\')) ? get_query_var(\'paged\') : 1; $post_per_page = $cols * $rows; // -1 s