WPインストールの任意のURLに追加できるmyvar/myvalue
書き換えエンドポイントをEP_ALL
に追加しました。それにWPプラグインが作用します。その部分はクールですが、パーマリンク構造が/%category%/%postname%/
の場合は機能しません。それはすべての組み込みの選択可能な構造でうまくいきます。それが動作しない他の構造があるかもしれません。
動作しません= 404エラーです。
パスは次のようになります。/mycategory/mypost/myvar/myvalue
Rewriteアナライザープラグインを入手しました。
これではありません...(黄色で強調表示されています)
(.?.+?)/myvar(/(.*))?/?$
ページ名:mycategory/mypost
myvar:myvalue
どうやらこれは慣れますが、まだ寒いです...
.?.+?/([^/]+)/myvar(/(.*))?/?$
添付ファイル:mypost
myvar:/ myvalue
平凡な間違い...
(.?.+?)(/[0-9]+)?/?$
ページ名:mycategory/mypost/myvar
ページ:/ myvalue
これで終わりですが、認識できません!
(.+?)/([^/]+)/myvar(/(.*))?/?$
category_name:mycategory
名前:mypost
myvar:myvalue
そしてglobal $query_string;
を出力しています。attachment=mypost&myvar=%2Fmyvalue
(ところで、%2f - スラッシュを含めるべきではありません)。
それで、これがWPのバグであれば誰かが私を啓発することができますか、それとも私がそれについてできることがありますか?
私の考えは大体これですif ( '/%category%/%postname%/' == $wp_rewrite->permalink_structure ){ ... }
カテゴリと名前を手動でWPに指定してその内容を表示します。しかし、何が...
になるのか、そしてこれを何につなげるべきかがわかりません。
なぜうまくいかないのですか?よく分かりません。その特定のパターンは親/子ページのリクエストと同じです、WordPressは投稿がその名前で存在するかどうか、またはそれがページであるかどうかを判断するためにいくつかの追加クエリを行う必要があります。あなたがエンドポイントを追加するときにこれがなぜ壊れるのか、私は決定するためのコードを詳しく調べていません。
どのようにしてそれを機能させることができますか? EP_ALL
マスクを使用せず、代わりにすべての個々のマスクでOR演算子を使用すると、それらのエンドポイントが正しく解決されるようにルールが構築されます。
例えば:
function wpa_myvar_endpoint(){
add_rewrite_endpoint( 'myvar', EP_PERMALINK | EP_PAGES );
}
add_action( 'init', 'wpa_myvar_endpoint' );