web-dev-qa-db-ja.com

Wordpressはパーマリンクを内部でどのように解決しますか?

書き換えシステムとカスタムのpost_typesを少し変更していますが、続行する前にWordPressが書き換えをどのように処理するかを調べなければなりません。

私は関数url_to_postid()を見つけましたが、WordPressそれ自身はパーマリンクをクエリに解決するためにそれを使うことを継ぎ合わせませんか?

たとえば、pre_get_post関数にフックしてページまたはカスタムのpost_typeを参照すると、提供されるクエリに "is_page"や "attachment"などが含まれますが、ランダムにURLを入力する場合、このデータは表示されません。 URLがページ| posttype |添付ファイルかどうかWordPressはどこでわかりますか?そして、どうすればこれに取り組むことができますか?

4

Action Reference を見ると、pre_get_postsの前に実行されたすべてのアクションが表示されます。おそらく調査する必要がある2つは、 parse_requestparse_query です(はい、ドキュメントにはありません) 。

おそらく最も関心のある部分はparse_requestで、書き換えルールは要求されたURIと照合されます。 ここでソースをご覧ください

フロントエンド要求が発生すると、ファイルwp-blog-header.phpがロードされ、 wp() が呼び出され、WP class /の main()メソッドが呼び出されます。parse_request() メソッドを呼び出します。その関数の下部で、 parse_requestアクションが実行される場所を確認します

編集

コーデックスの詳細情報については、コーデックスの次のページも参照してください。 QueryOverview

2
Milo