WordPressのテンプレートファイルのロード順および呼び出し階層
WordPressのテンプレートファイルのロード順および呼び出し階層を調査する。
1.使用しているテーマについて
テーマにはyokoを親テーマとした独自の子テーマk4750を使用している。
2.ロード順
WordPressのindex.php
にget_included_files()
を仕込んで調査した。
index.php
wp-blog-header.php
wp-load.php
wp-config.php
wp-settings.php
wp-includes/load.php
wp-includes/default-constants.php
wp-includes/version.php
wp-includes/compat.php
wp-includes/functions.php
wp-includes/option.php
wp-includes/class-wp.php
wp-includes/class-wp-error.php
wp-includes/plugin.php
wp-includes/pomo/mo.php
wp-includes/pomo/translations.php
wp-includes/pomo/entry.php
wp-includes/pomo/streams.php
wp-includes/wp-db.php
wp-includes/cache.php
wp-includes/default-filters.php
wp-includes/l10n.php
wp-includes/class-wp-walker.php
wp-includes/class-wp-ajax-response.php
wp-includes/formatting.php
wp-includes/capabilities.php
wp-includes/query.php
wp-includes/theme.php
wp-includes/class-wp-theme.php
wp-includes/template.php
wp-includes/user.php
wp-includes/meta.php
wp-includes/general-template.php
wp-includes/link-template.php
wp-includes/author-template.php
wp-includes/post.php
wp-includes/post-template.php
wp-includes/revision.php
wp-includes/post-formats.php
wp-includes/post-thumbnail-template.php
wp-includes/category.php
wp-includes/category-template.php
wp-includes/comment.php
wp-includes/comment-template.php
wp-includes/rewrite.php
wp-includes/feed.php
wp-includes/bookmark.php
wp-includes/bookmark-template.php
wp-includes/kses.php
wp-includes/cron.php
wp-includes/deprecated.php
wp-includes/script-loader.php
wp-includes/class.wp-dependencies.php
wp-includes/class.wp-scripts.php
wp-includes/functions.wp-scripts.php
wp-includes/class.wp-styles.php
wp-includes/functions.wp-styles.php
wp-includes/taxonomy.php
wp-includes/update.php
wp-includes/canonical.php
wp-includes/shortcodes.php
wp-includes/class-wp-embed.php
wp-includes/media.php
wp-includes/http.php
wp-includes/class-http.php
wp-includes/widgets.php
wp-includes/nav-menu.php
wp-includes/nav-menu-template.php
wp-includes/admin-bar.php
wp-includes/vars.php
wp-content/plugins/auto-post-thumbnail/auto-post-thumbnail.php
wp-content/plugins/responsive-add-ons/responsive-add-ons.php
wp-includes/pluggable.php
wp-includes/pluggable-deprecated.php
wp-includes/default-widgets.php
wp-includes/locale.php
wp-content/themes/k4750/functions.php
wp-content/themes/yoko/functions.php
wp-content/themes/yoko/includes/theme-options.php
wp-includes/template-loader.php
wp-includes/class-wp-admin-bar.php
wp-content/themes/yoko/index.php
wp-content/themes/yoko/header.php
wp-content/themes/yoko/content.php
wp-content/themes/yoko/sidebar.php
wp-content/themes/yoko/footer.php
3.呼び出し階層
PHPの拡張「inclued(Inclusion hierarchy viewer)」を使って調査した。index.php
を頂点に、「行番号: ファイル名(オペレーション名)」を記載している。
index.php
17: wp-blog-header.php (require)
12: wp-load.php (require_once)
29: wp-config.php (require_once)
93: wp-settings.php (require_once)
21: wp-includes/load.php (require)
327: wp-includes/wp-db.php (require_once)
390: wp-includes/cache.php (require_once)
22: wp-includes/default-constants.php (require)
23: wp-includes/version.php (require)
64: wp-includes/compat.php (require)
65: wp-includes/functions.php (require)
8: wp-includes/option.php (require)
2706: wp-includes/default-widgets.php (require_once)
66: wp-includes/class-wp.php (require)
67: wp-includes/class-wp-error.php (require)
68: wp-includes/plugin.php (require)
69: wp-includes/pomo/mo.php (require)
10: wp-includes/pomo/translations.php (require_once)
10: wp-includes/pomo/entry.php (require_once)
11: wp-includes/pomo/streams.php (require_once)
82: wp-includes/default-filters.php (require)
99: wp-includes/l10n.php (require_once)
105: wp-includes/class-wp-walker.php (require)
106: wp-includes/class-wp-ajax-response.php (require)
107: wp-includes/formatting.php (require)
108: wp-includes/capabilities.php (require)
109: wp-includes/query.php (require)
110: wp-includes/theme.php (require)
111: wp-includes/class-wp-theme.php (require)
112: wp-includes/template.php (require)
407: wp-content/themes/yoko/header.php (require_once)
409: wp-content/themes/yoko/content.php (require)
409: wp-content/themes/yoko/content.php (require)
407: wp-content/themes/yoko/sidebar.php (require_once)
407: wp-content/themes/yoko/footer.php (require_once)
113: wp-includes/user.php (require)
114: wp-includes/meta.php (require)
115: wp-includes/general-template.php (require)
116: wp-includes/link-template.php (require)
117: wp-includes/author-template.php (require)
118: wp-includes/post.php (require)
119: wp-includes/post-template.php (require)
120: wp-includes/revision.php (require)
121: wp-includes/post-formats.php (require)
122: wp-includes/post-thumbnail-template.php (require)
123: wp-includes/category.php (require)
124: wp-includes/category-template.php (require)
125: wp-includes/comment.php (require)
126: wp-includes/comment-template.php (require)
127: wp-includes/rewrite.php (require)
128: wp-includes/feed.php (require)
129: wp-includes/bookmark.php (require)
130: wp-includes/bookmark-template.php (require)
131: wp-includes/kses.php (require)
132: wp-includes/cron.php (require)
133: wp-includes/deprecated.php (require)
134: wp-includes/script-loader.php (require)
25: wp-includes/class.wp-dependencies.php (require)
28: wp-includes/class.wp-scripts.php (require)
31: wp-includes/functions.wp-scripts.php (require)
34: wp-includes/class.wp-styles.php (require)
37: wp-includes/functions.wp-styles.php (require)
135: wp-includes/taxonomy.php (require)
136: wp-includes/update.php (require)
137: wp-includes/canonical.php (require)
138: wp-includes/shortcodes.php (require)
139: wp-includes/class-wp-embed.php (require)
140: wp-includes/media.php (require)
141: wp-includes/http.php (require)
142: wp-includes/class-http.php (require)
143: wp-includes/widgets.php (require)
144: wp-includes/nav-menu.php (require)
145: wp-includes/nav-menu-template.php (require)
146: wp-includes/admin-bar.php (require)
25: wp-includes/class-wp-admin-bar.php (require)
185: wp-includes/vars.php (require)
197: wp-content/plugins/auto-post-thumbnail/auto-post-thumbnail.php (include_once)
197: wp-content/plugins/responsive-add-ons/responsive-add-ons.php (include_once)
201: wp-includes/pluggable.php (require)
202: wp-includes/pluggable-deprecated.php (require)
279: wp-includes/locale.php (require_once)
291: wp-content/themes/k4750/functions.php (include)
293: wp-content/themes/yoko/functions.php (include)
34: wp-content/themes/yoko/includes/theme-options.php (require_once)
16: wp-includes/template-loader.php (require_once)
47: wp-content/themes/yoko/index.php (include)
4.調査を行った背景
親テーマyokoのヘッダー画像(1102×350)を別のサイズの画像(1000×288)に変更しようとして調査したところ、画像サイズの正しいカスタマイズ方法は「子テーマk4750のfunctions.php
よるフィルターの定義にて行う」ように見えたが、functions.php
が誰によってどのタイミングでinclude
されるのか知りたかったので(ドキュメントやソースコードだけでは不安だったのもあり)実際の動作から確認を行った。