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');
書き換え規則の正規表現の間違いです。これは完璧に動作します!
add_rewrite_rule('^([a-z]{2})\/(.+)(\/)?$', 'index.php?page=&pagename=$matches[2]&locale=$matches[1]', 'top');
それを達成するためのさまざまな方法があります。最も簡単なのは、スラッグがmysite.com/en/
になるように、新しいページを "en"という名前で作成することです。
今度は "en"ページをmy-page-nameの親にするか、言い換えればmy-page-nameをenの子にします。だからナメクジはmysite.com/en/my-page-name/
になります