web-dev-qa-db-ja.com

Wordpressの書き換えが投稿とページで異なる動作をするのはなぜですか?

私は私のWordPressのインストールで私のfunctions.phpファイルにいくつかの簡単な書き換えを作成しています:

add_rewrite_rule('product1/faqs/?', 'index.php?name=product1-faqs', 'top'); 

ブラウザで "product1/faqs"を押すと、 "product1-faqs"の内容が正常に表示されますが、URLはproduct1/faqsとして保持されています(これは望ましいことです)が、POSTの場合のみです。

私がこれと同じテクニックを試してみるがPAGE上では、ブラウザのURLは "product1-faqs"と表示されてフリックしてしまいます。

何故ですか?書き換えが望みどおりに機能するようにするために、投稿だけに制限する必要はありません。

1
wilsonf1

これは非常に簡単な解決策です - WP_Query は投稿とカスタム投稿タイプの投稿にname変数を利用します。それはページのためにpagenameを利用します、それ故になぜ?name=product1-faqsは動作しません。代わりにこれを使ってください。

add_rewrite_rule('product1/faqs/?', 'index.php?pagename=product1-faqs', 'top'); 
1
Eric Holmes