0

渡された変数に基づいて動的コンテンツを提供できるように、wordpress で URL を書き直そうとしています。変数データを渡す必要があるプラグインがあります。現在私は持っています:

http://xyzsite.com/page/?var1=something

これは正常に機能し、$_GET var を渡します。次のステップは、次のように変数をクリーンアップすることです

http://xyzsite.com/page/something

私はいくつかのグーグル検索を行い、有望に見えるいくつかのサイトに出くわしましたが、それらのどれも機能させることができません. 私が読んだことから、私は使用する必要があります

add_rewrite_tag and add_rewrite_rule

記事を読んだ後、これを functions.php ページに追加しました。

add_rewrite_tag('%var1%','([^&]+)');
add_rewrite_rule('^page/([^&]+)/?','index.php?p=1141&var1=$matches[1]','top');

ページhttp://xyzsite.com/page/somethingに移動すると、404 エラーが発生します。http://xyzsite.com/page/?var1=somethingに移動すると、まだ正常に動作しています。そのため、私の書き換えが登録されていないか、正しく機能していないようです。

誰かが上記の書き換えを達成するのを手伝ってくれますか? 参考までに、私のパーマリンク設定は、問題がある場合は投稿名に設定されています。ありがとうございました。

4

1 に答える 1

1

I̶'̶m̶ ̶n̶o̶t̶ ̶a̶ ̶r̶e̶g̶e̶x̶ ̶p̶r̶o̶,̶ ̶b̶u̶t̶ ̶I̶ ̶s̶u̶s̶p̶e̶c̶t̶ ̶a̶n̶ ̶i̶s̶s̶u̶e̶ ̶i̶n̶ ̶y̶o̶u̶r̶r̶e̶w̶r̶i̶t̶e̶ r̶̶u̶l̶e:

a̶d̶d̶_̶r̶e̶w̶r̶i̶t̶e̶_̶r̶u̶l̶e̶(̶'̶^̶p̶a̶g̶e̶/̶(̶[̶^̶&̶]̶+̶)̶/̶?̶'̶,̶'̶i̶n̶d̶e̶x̶.̶p̶h̶p̶?̶p̶=̶1̶1̶4̶1̶&̶v̶a̶r̶1̶=̶$̶m̶a̶t̶c̶h̶e̶s̶[̶1̶]̶'̶,̶'̶t̶o̶p̶'̶)̶;̶

̶ ̶N̶o̶t̶e̶ ̶t̶h̶e̶ ̶/̶?̶ ̶y̶o̶u̶'̶v̶e̶ ̶a̶d̶d̶e̶d̶ ̶a̶t̶ ̶t̶h̶e̶ ̶e̶n̶d̶.̶ ̶T̶h̶u̶s̶ ̶y̶o̶u̶ ̶s̶h̶o̶u̶l̶d̶ ̶a̶c̶c̶e̶s̶s̶ ̶y̶o̶u̶r̶ ̶p̶a̶g̶e̶ ̶w̶i̶t̶h̶ ̶h̶t̶t̶p̶:̶/̶/̶x̶y̶z̶s̶i̶t̶e̶.̶c̶o̶m̶/̶p̶a̶g̶e̶/̶s̶o̶m̶e̶t̶h̶i̶n̶g̶/̶?̶ ̶a̶n̶d̶ ̶n̶o̶t̶ ̶x̶y̶z̶s̶i̶t̶e̶.̶c̶o̶m̶/̶p̶a̶g̶e̶/̶s̶o̶m̶e̶t̶h̶i̶n̶g̶ .̶ ̶ ̶H̶a̶v̶e̶ ̶y̶o̶u̶ ̶t̶r̶i̶e̶d̶ ̶i̶f̶ ̶t̶h̶a̶t̶ ̶w̶o̶r̶k̶s̶?̶

Gustavo Straube がコメントで指摘したように、上記の線で囲まれたテキストは間違っています。その提案された解決策は無視してください。

私の最後のアドバイスは、 http://codex.wordpress.org/Rewrite_API/flush_rulesに記載されているようにflush_rules();、 last の後にa を追加してみることです。add_rewrite_rule

直接get_query_var('var_name')アクセスしようとするのではなく、クエリ変数にアクセスする必要があることに注意してください。$_GET

于 2012-08-18T10:34:51.643 に答える