2

http://www.blah.com/foo のように wordpress にページ "foo" があるとします。

このページのコンテンツ内に <!-- foo --!> などのトリガーがあり、プラグインによって add_filter('the_content', ..) フィルターを介して追跡されているとします。したがって、http:www.blah.com/foo およびhttp://www.blah.com/foo?var=barへのすべての呼び出しは、プラグインによって取得され、処理されます。

プラグインが、タイプhttp://www.blah.com/foo/bar http://www.blah.com/foo/bar/のすべての URL を処理したいことを wordpress に知らせる方法はありますか? morefooなど。これらの URL は動的に作成されるため、これらのそれぞれのページ/サブページを作成する必要はありませんか?

また、ページ内の the_content で add_content フィルターを使用する以外に、理想的には URL をキーにしたプラグイン内から制御を取得できるので、http: //www.blah.com/foo へのすべての呼び出しはプラグインによって処理されます。

4

3 に答える 3

2

はい、サブページを作成せずに、URL 参照 (別名クエリ) を取得して解析できます。

イベントのシーケンスは、クエリの概要ページで説明されています。parse_request特にアクションへのフックを検討したいと考えています。

于 2009-01-31T03:40:15.503 に答える
2

自分の質問に答える:

上記の回答のポインターは役に立ち、正しい軌道に乗ることができましたが、問題の URL が呼び出されるたびに index.php を呼び出し続けるという障害にぶつかり続けました。

その後、 http://mikeschinkel.com/blog/restful-web-services-in-wordpress-plugin/に出くわしました。 そこで彼は説明に入り、コントロールが必要な場所にあることを確認するために template_redirect アクションを必要とする回答を提供します.

于 2009-01-31T21:49:11.453 に答える
1

カスタム mod_rewrite ルールを使用して、あなたが説明したことと非常によく似たことを行います。あなたの例に従って、テンプレート foo.php を使用するページ Foo があります。foo.php テンプレートは、URL の残りの部分を定義する「パス」などのクエリ変数を受け入れます。私の .htaccess ファイルには、次のルールがあります ( WordPress の自動生成ルールの外に置くように注意してください!):

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^foo/(.+) /foo/?path=$1 [L] 
</IfModule>

プラグインで「redirect_canonical」プラグインを無効にする必要がある場合もあります。これにより、URL が予期せず盗まれる可能性があります。

remove_action('template_redirect', 'redirect_canonical');

template_redirectフックとWP_Rewriteクラスを使用して同様のことを行うこともできると思いますが、自分で試したことはありません。

于 2009-01-31T03:47:52.320 に答える