2016-12-29 1 views
1

私のWPサイトの1つに重大な問題があります。 Plaeseは私の書き換えルールを見てみましょう:WP:余分なページを作成せずにadd_rewrite_rule()を行う方法

function set_rewrite_rules(){ 
    add_rewrite_tag('%posttype%', '([^&]+)'); 
    add_rewrite_rule('^expertise[/]([^/]+)[/]([^/]+)[/]page[/]([0-9]+)[/]?', 
    'index.php?expertise=$matches[1]&posttype=$matches[2]&paged=$matches[3]', 
    'top'); 
    add_rewrite_rule('^expertise[/]([^/]*)[/]articles[/]([^/]+)[/]?', 
    'index.php?article=$matches[2]', 
    'top'); 
    add_rewrite_rule('^expertise[/]([^/]*)[/]verdicts[/]([^/]+)[/]?', 
    'index.php?verdict=$matches[2]', 
    'top'); 
    add_rewrite_rule('^expertise[/]([^/]*)[/]laws[/]([^/]+)[/]?', 
    'index.php?law=$matches[2]', 
    'top'); 
    add_rewrite_rule('^expertise[/]([^/]*)[/]prosecutions[/]([^/]+)[/]?', 
    'index.php?prosecution=$matches[2]', 
    'top'); 
    add_rewrite_rule('^expertise[/]([^/]+)[/]([^/]+)[/]?', 
    'index.php?expertise=$matches[1]&posttype=$matches[2]', 
    'top'); 
} 
add_action('init', 'set_rewrite_rules'); 

をそれは素晴らしい作品が、それはのような余分なページがたくさんcreats:

通常は404を返しますが、現在はそれらのページ作品のはずです
/expertise/[EX-NAME]/page/2/page/4/page/3/page/2/page/4/page/2/ 

を&は通常の有効なページのようです。 期待される結果:ページネーションは1回だけ一致するようにしてください。例えば:

/expertise/[EX-NAME]/page/2/ 

すべてがset_rewrite_rulesがコメントアウトされながら期待通りに動作します。

+1

最初の書き換えルールの最後に '$'を追加して、何が起こるかを確認してください。 – revo

+0

@revoはそれを試しました。 add_rewrite_rule( '^専門知識[/]([^ /] +)[/]([^ /] +)[/]ページ[/]([0-9] +)[/] –

+0

この特定のリライトを削除するとどうなるでしょうか?(例: "$"、index.php?expert = $ matches [1]&posttype = $ matches [2]&paged = $ matches [3]ルール? – revo

答えて

0

最後のルールに$を追加しようとしました&余分なページのように見えません。

function set_rewrite_rules(){ 
    add_rewrite_tag('%posttype%', '([^&]+)'); 
    add_rewrite_rule('^expertise[/]([^/]+)[/]([^/]+)[/]page[/]([0-9]+)[/]?', 
    'index.php?expertise=$matches[1]&posttype=$matches[2]&paged=$matches[3]', 
    'top'); 
    add_rewrite_rule('^expertise[/]([^/]*)[/]articles[/]([^/]+)[/]?', 
    'index.php?article=$matches[2]', 
    'top'); 
    add_rewrite_rule('^expertise[/]([^/]*)[/]verdicts[/]([^/]+)[/]?', 
    'index.php?verdict=$matches[2]', 
    'top'); 
    add_rewrite_rule('^expertise[/]([^/]*)[/]laws[/]([^/]+)[/]?', 
    'index.php?law=$matches[2]', 
    'top'); 
    add_rewrite_rule('^expertise[/]([^/]*)[/]prosecutions[/]([^/]+)[/]?', 
    'index.php?prosecution=$matches[2]', 
    'top'); 
    add_rewrite_rule('^expertise[/]([^/]+)[/]([^/]+)[/]?$', 
    'index.php?expertise=$matches[1]&posttype=$matches[2]', 
    'top'); 
} 
add_action('init', 'set_rewrite_rules'); 

おかげで助けを求め@revo:

は、例を参照してください!

+0

コメントが回答に役立つ場合。そのユーザーに正しいユーザーにポイントを報酬できるように、回答を作成するように依頼します。あなたは本当にできません – janw

関連する問題