web-dev-qa-db-ja.com

リダイレクトせずにURLにカスタム変数を追加する方法?

URLにローカル変数を追加しようとしています。

例として、私はこのURLを持っています:

mysite.com/my-page-name/

それに 'en'変数を追加して、ページを正しく機能させたままにします。

mysite.com/en/my-page-name/ 

私はadd_rewrite_tag()add_rewrite_rule()を使ってそれに対処しようとしました、しかしそれはうまくいっていません、それで私は何を間違っていますか?

add_rewrite_tag('%locale%', '^([a-z]{2})');
add_rewrite_rule('^([a-z]{2})/(.+)[/$]', 'index.php?pagename=$matches[2]', 'top');
1

書き換え規則の正規表現の間違いです。これは完璧に動作します!

add_rewrite_rule('^([a-z]{2})\/(.+)(\/)?$', 'index.php?page=&pagename=$matches[2]&locale=$matches[1]', 'top');
1

それを達成するためのさまざまな方法があります。最も簡単なのは、スラッグがmysite.com/en/になるように、新しいページを "en"という名前で作成することです。

今度は "en"ページをmy-page-nameの親にするか、言い換えればmy-page-nameをenの子にします。だからナメクジはmysite.com/en/my-page-name/になります

1
daniyalahmad