私は問題を抱えていて、正しい書き換えルールを書いています。
基本的に、ここに私が欲しい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¶m1=$matches[1]¶m2=$matches[2]',
'top' );
add_rewrite_rule(
'myPage/mySuPage/([^/]*)/([^/]*)/page/([0-9]{1,})?',
'index.php?pagename=myPage/mySuPage¶m1=$matches[1]¶m2=$matches[2]&pageds=$matches[3]',
'top' );
add_rewrite_rule(
'myPage/mySuPage/(.+?)(/page/([0-9]+))?/?$',
'index.php?pagename=myPage/mySuPage¶m1=$matches[1]¶m2=$matches[2]',
'top' );
最初の2つの書き換え規則は$
で終わっていません。これはURLをそこで止めるべきであることを示しています。それで、最後のmyPage/mySuPage/param1/param2/page/3
部分を無視することができるだけなので、/page/3
はまだ最初のパターンにマッチします。その場合、次の書き換え規則は決して使用されません。
私のRewriteアナライザープラグイン を使うと、書き換え規則を単純化することができました。1つはパラメーターなしで、もう1つはオプションのページングを使用するものです。 。これら2つを1つにまとめることはうまくいきませんでした。オプションのparamsがページング部分を「食って」いるからです。
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¶m1=$matches[1]¶m2=$matches[2]&pageds=$matches[4]',
'top'
);