web-dev-qa-db-ja.com

WordPressテーマの入り口は何ですか?

WordPressがロードされてテーマが解析されるとき、どのファイルが最初にロードされますか?テンプレート階層のメンバーの1つですか、それともfunctions.phpですか?テーマ内のファイルの読み込み順序に例外はありますか?これがコアファイル(ソースコード)のどこにあるか知っていますか?

私の「調査」の間、私はテーマフォルダ内のすべてのFILEをエラーログに記録しました。そしてエントリポイントはfunctions.phpであるようです。

ボーナス質問:

テンプレート階層のさまざまなメンバーではなく、一箇所でユーザー認証と特権を検証したい。あなたは公共のWordPressプラグインやテーマの中でこれのための構造化されたOOPソリューションの例を持っていますか?

アクティブテーマのfunctions.phpは、ファイルwp-settings.php内の最初にロードされたテーマファイルです。他のすべてのテーマファイルは、要求のコンテキストに応じてロードされます。これは、ユーザーの認証、要求の解析、およびクエリの実行後に、ロードプロセスの非常に遅い時間に行われます。テンプレートは表示用であり、フロントエンドの表示に関係のないものはテンプレートに属しません。

認証の大部分はpluggable.phpで行われ、これによって認証機能をオーバーライドすることができます。認証プロセスをカスタマイズしたい場合は、これがおそらく見たいところです。関数wp_get_current_userは、プロセスを開始するためにwpクラスから起動されます。このプロセスでトリガーされるいくつかのアクションもあります。これを使用すると、独自のコードを実行してプロセスを短絡させることができます。また、プラガブル関数を完全にオーバーライドするよりもはるかに簡単で安全な方法です。

ロードプロセスで発生する順序を確認するために、 アクションリファレンス に慣れることをお勧めします。あなたがWordPressですることのほとんどすべては特定の時間に実行するためのアクションに夢中になります。選択したテーマに関係なくコードを表示したい場合は、プラグインまたは必須プラグインにコードを入れることもお勧めします。

ボーナス質問に関しては - 私は私の頭の上から1つについて考えることができません、多分私は後で何かを考えるでしょう...

3
Milo