2


1

http:/www.blah.com/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へのすべての呼び出しがプラグインによって処理されます。

3 Answer


2


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

一連のイベントはhttp://codex.wordpress.org/Query_Overview[Query Overview page]で説明されています。 特に `+ parse_request +`アクションへのフックを見たいと思います。


2


自分の質問に答える:

上記の答えの中のポインタは役に立ち、正しい道を進んでいきましたが、問題のURLが呼び出されたときはいつでもindex.phpを呼び出し続けていました。

私はそれからhttp://mikeschinkel.com/blog/restful-web-services-in-wordpress-plugin/に出くわした。そこで彼は説明に入り、コントロールがあなたの望むところにあることを確実にするためにtemplate_redirectアクションを要求する答えを提供する。 。


1


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

RewriteBase / RewriteRule ^ foo /(。)/ foo /?path = $ 1に対応するRewriteEngine [L]

あなたのプラグインはまた "redirect_canonical"プラグインを無効にする必要があるかもしれません。

remove_action( 'template_redirect'、 'redirect_canonical');
http://wphooks.flatearth.org/hooks/template_redirect/[template_redirect]フックとhttp://codex.wordpress.org/Function_Reference/WP_Rewrite[WP_Rewrite]クラスを使用しても同様のことが可能になるかもしれないと思います、しかし、私は自分で試したことはありません。