【概要編】ワードプレス起動から画面表示されるまでの流れ(WP構成やPHPの動き)のご紹介
ホームページ作成/運用関連サイトマップのご紹介
ホームページ作成/運用サイトマップをご紹介します。
ホームページ作成/運用サイトマップのご紹介 |
|||
学び/学習TOP > IT|ゲーム作り|HP作成 | |||
HP作成Top > WordPress|Cocoon|便利テクニック | |||
【ワードプレス/WordPress】 ディレクトリ・ファイル構造|画面表示までの流れ(概要|詳細)|データベース一覧 ■サーバー移行時のエラー・トラブル解決 画面が表示されない| 【テーマ:Cocoon】 拡張デザイン(一覧|インライン|マーカー|ボックス系(一覧|アイコン|案内|白抜き|タブボックス|バッジ|マイクロコピー)) 【便利テクニック】 サクラエディタ|正規表現 |
|||
【レンタルサーバー】 | |||
Xサーバー 特徴||||| | |||
■■│コペンギンTOP > ゲーム│ホビー│書籍・マンガ│■■ |
シューティングゲーム | ゲーム | 中古・新品通販の駿河屋
ワードプレス起動からホームページが表示されるまでの流れ(WP構成やPHPの動き)のご紹介
サイト運用運用中に突然、ホームページが表示されなくなった場合やサーバーの移行作業などの時に、ワードプレス起動からホームページが表示されるまでの流れを知っておくとトラブル対応やカスタマイズする時に非常に役に立ちます。
「WP:ホームページ表示までのPHPの動き」について
データ要求が来た時にホームページが表示されるための流れ(主にPHPファイルの動作)は以下の通りです。
「WP:ホームページ表示までのPHPの動き」について | ||
順番 | 実行者 | 動作内容 |
【1】 | ウェブサーバー(Apache/Nginxなど) | index.phpを実行 |
【2】 | index.php | wp-blog-header.phpを実行 |
【3】 | wp-blog-header.php | wp関数を実行 |
【4】 | wp-blog-header.php | template-loader.phpを実行 |
【5】 | template-loader.php | テーマ内のsingle.phpファイルを実行 |
【6】 | single.php | 投稿ページを構成するのに必要なPHPを実行してページを作成。 ヘッダー:header.php、 サイドバー:sidebar.php、 フッター:footer.phpなど |
「WP:ホームページ表示までのPHPの動き」を解説
【1】ウェブサーバー(Apache/Nginxなど)が「index.php」を実行
【2】「index.php」が「wp-blog-header.php」を実行(同時にWordPress起動用のPHPも実行していますがそちらは省略)。
【3】「wp-blog-header.php」が「wp関数」を実行
▼このwp関数でメインクエリーが発行され投稿データが取得されます。
【4】「wp-blog-header.php」が「template-loader.php」を実行します。
【5】「template-loader.php」がテーマ内の「single.php」ファイルを実行します。
▼このとき実行されるPHPは表示するページの種類によって異なります。
【6】「single.php」が投稿ページを構成するのに必要なPHPを実行してページを作成します。
例えば
- ヘッダー:header.php
- サイドバー:sidebar.php
- フッター:footer.php
などです。記事本文は投稿データから取得して作成します。これでデータ要求されたホームページが表示されます。
WordPress構成から見たPHPファイルの動き
WordPress構成から見たPHPファイルの動きをご紹介します。
WordPress構成から見たPHPファイルの動き | |||
順番 | フォルダ | wp-admin | 管理画面を構成するファイルが入ったフォルダ |
フォルダ | wp-content | テーマやプラグインなどメインとなるファイルが入ったフォルダ | |
【6】 | フォルダ | wp-content/themes/cocoon-master/ | テーマ:Cocoonを利用した場合 |
フォルダ | wp-includes | API、クラス、関数などのファイルが入ったフォルダ | |
【4】【5】 | フォルダ | wp-includes/template-loader.php/single.php | |
【1】 | php | index.php | ファイル構成の基本的なファイル、トップページにも使われる |
【2】【3】 | php | wp-blog-header.php | wp-load.phpやテンプレートファイルを読み込み |
php | wp-load.php | 関数やクラス定義が書かれたファイルを読み込む | |
php | wp-config.php | 各種設定情報が書かれたファイル | |
php | wp-settings.php | 変数、関数、クラスの基本設定 | |
php | wp-signup.php | ユーザー名やサイト名、アドレスなどサイト登録に必要なファイル | |
php | wp-login.php | ユーザー登録、認証に必要なファイル | |
php | wp-activate.php | ユーザーアカウントを有効にするファイル | |
php | wp-trackback.php | トラックバックに必要なファイル | |
php | wp-mail.php | メールからブログ投稿する機能が書かれたファイル | |
php | wp-comments-post.php | コメント機能が書かれたファイル | |
php | wp-cron.php | WordPressの自動処理システムを管理するファイル | |
php | xmlrpc.php | 管理画面以外からの記事投稿 | |
txt | .htaccess | アクセスを制御するとても重要なファイル。 |
「wp-blog-header.php」を実行する「index.php」のご紹介
「WP:ホームページ表示までのPHPの動き」について | ||
順番 | 実行者 | 動作内容 |
【1】 | ウェブサーバー(Apache/Nginxなど) | index.phpを実行 |
【2】 | index.php | wp-blog-header.phpを実行 |
【3】 | wp-blog-header.php | wp関数を実行 |
【4】 | wp-blog-header.php | template-loader.phpを実行 |
【5】 | template-loader.php | テーマ内のsingle.phpファイルを実行 |
【6】 | single.php | 投稿ページを構成するのに必要なPHPを実行してページを作成。 ヘッダー:header.php、 サイドバー:sidebar.php、 フッター:footer.phpなど |
「index.php」の仕事は以下の通りです。
【1】ウェブサーバー(Apache/Nginxなど)が「index.php」を実行
【2】「index.php」が「wp-blog-header.php」を実行(同時にWordPress起動用のPHPも実行していますがそちらは省略)。
▼「index.php」サンプルファイルのご紹介
<?php
/**
* Front to the WordPress application. This file doesn't do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*
* @package WordPress
*/
/**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
define( 'WP_USE_THEMES', true );
/** Loads the WordPress Environment and Template */
require __DIR__ . '/wp-blog-header.php';
「require __DIR__ . ‘/wp-blog-header.php’;」で「wp-blog-header.php」を実行しています。
require __DIR__ . '/wp-blog-header.php';
「wp関数」を実行する「wp-blog-header.php」のご紹介
「WP:ホームページ表示までのPHPの動き」について | ||
順番 | 実行者 | 動作内容 |
【1】 | ウェブサーバー(Apache/Nginxなど) | index.phpを実行 |
【2】 | index.php | wp-blog-header.phpを実行 |
【3】 | wp-blog-header.php | wp関数を実行 |
【4】 | wp-blog-header.php | template-loader.phpを実行 |
【5】 | template-loader.php | テーマ内のsingle.phpファイルを実行 |
【6】 | single.php | 投稿ページを構成するのに必要なPHPを実行してページを作成。 ヘッダー:header.php、 サイドバー:sidebar.php、 フッター:footer.phpなど |
「wp-blog-header.php」の仕事は以下の通りです。 【3】「wp-blog-header.php」が「wp関数」を実行し、このwp関数でメインクエリーが発行され投稿データが取得されます。
// Set up the WordPress query.
wp();
【4】「wp-blog-header.php」が「wp-includes/template-loader.php」を実行します。
require_once ABSPATH . WPINC . '/template-loader.php';
▼「wp-blog-header.php」サンプルファイルのご紹介
<?php
/**
* Loads the WordPress environment and template.
*
* @package WordPress
*/
if ( ! isset( $wp_did_header ) ) {
$wp_did_header = true;
// Load the WordPress library.
require_once __DIR__ . '/wp-load.php';
// Set up the WordPress query.
wp();
// Load the theme template.
require_once ABSPATH . WPINC . '/template-loader.php';
}
テーマ内の「single.php」ファイルを実行する「wp-includes/template-loader.php」のご紹介
「WP:ホームページ表示までのPHPの動き」について | ||
順番 | 実行者 | 動作内容 |
【1】 | ウェブサーバー(Apache/Nginxなど) | index.phpを実行 |
【2】 | index.php | wp-blog-header.phpを実行 |
【3】 | wp-blog-header.php | wp関数を実行 |
【4】 | wp-blog-header.php | template-loader.phpを実行 |
【5】 | template-loader.php | テーマ内のsingle.phpファイルを実行 |
【6】 | single.php | 投稿ページを構成するのに必要なPHPを実行してページを作成。 ヘッダー:header.php、 サイドバー:sidebar.php、 フッター:footer.phpなど |
「wp-includes/template-loader.php」の仕事は以下の通りです。
【5】「wp-includes/template-loader.php」がテーマ内の「single.php」ファイルを実行 ▼このとき実行されるPHPは表示するページの種類によって異なります。
テーマ:Cocoonを利用した場合、「wp-content」配下の「themes」フォルダに配置されたcocoon-master/single.phpが実行されます。
▼「wp-includes/template-loader.php」サンプルファイルのご紹介
<?php
/**
* Loads the correct template based on the visitor's url
*
* @package WordPress
*/
if ( wp_using_themes() ) {
/**
* Fires before determining which template to load.
*
* @since 1.5.0
*/
do_action( 'template_redirect' );
}
/**
* Filters whether to allow 'HEAD' requests to generate content.
*
* Provides a significant performance bump by exiting before the page
* content loads for 'HEAD' requests. See #14348.
*
* @since 3.5.0
*
* @param bool $exit Whether to exit without generating any content for 'HEAD' requests. Default true.
*/
if ( 'HEAD' === $_SERVER['REQUEST_METHOD'] && apply_filters( 'exit_on_http_head', true ) ) {
exit;
}
// Process feeds and trackbacks even if not using themes.
if ( is_robots() ) {
/**
* Fired when the template loader determines a robots.txt request.
*
* @since 2.1.0
*/
do_action( 'do_robots' );
return;
} elseif ( is_favicon() ) {
/**
* Fired when the template loader determines a favicon.ico request.
*
* @since 5.4.0
*/
do_action( 'do_favicon' );
return;
} elseif ( is_feed() ) {
do_feed();
return;
} elseif ( is_trackback() ) {
require ABSPATH . 'wp-trackback.php';
return;
}
if ( wp_using_themes() ) {
$tag_templates = array(
'is_embed' => 'get_embed_template',
'is_404' => 'get_404_template',
'is_search' => 'get_search_template',
'is_front_page' => 'get_front_page_template',
'is_home' => 'get_home_template',
'is_privacy_policy' => 'get_privacy_policy_template',
'is_post_type_archive' => 'get_post_type_archive_template',
'is_tax' => 'get_taxonomy_template',
'is_attachment' => 'get_attachment_template',
'is_single' => 'get_single_template',
'is_page' => 'get_page_template',
'is_singular' => 'get_singular_template',
'is_category' => 'get_category_template',
'is_tag' => 'get_tag_template',
'is_author' => 'get_author_template',
'is_date' => 'get_date_template',
'is_archive' => 'get_archive_template',
);
$template = false;
// Loop through each of the template conditionals, and find the appropriate template file.
foreach ( $tag_templates as $tag => $template_getter ) {
if ( call_user_func( $tag ) ) {
$template = call_user_func( $template_getter );
}
if ( $template ) {
if ( 'is_attachment' === $tag ) {
remove_filter( 'the_content', 'prepend_attachment' );
}
break;
}
}
if ( ! $template ) {
$template = get_index_template();
}
/**
* Filters the path of the current template before including it.
*
* @since 3.0.0
*
* @param string $template The path of the template to include.
*/
$template = apply_filters( 'template_include', $template );
if ( $template ) {
include $template;
} elseif ( current_user_can( 'switch_themes' ) ) {
$theme = wp_get_theme();
if ( $theme->errors() ) {
wp_die( $theme->errors() );
}
}
return;
}
投稿ページを構成するのに必要なPHPを実行する「single.php」ファイルのご紹介
「single.php」の仕事は以下の通りです。 【6】「single.php」が投稿ページを構成するのに必要なPHPを実行してページを作成します。 ▼テーマ:Cocoonを利用した場合、「wp-content」配下の「themes」フォルダに配置されたcocoon-master/single.phpが実行されます。
WordPress構成から見たPHPファイルの動き | |||
順番 | フォルダ | wp-admin | 管理画面を構成するファイルが入ったフォルダ |
フォルダ | wp-content | テーマやプラグインなどメインとなるファイルが入ったフォルダ | |
【6】 | フォルダ | wp-content/themes/cocoon-master/ | テーマ:Cocoonを利用した場合 |
フォルダ | wp-includes | API、クラス、関数などのファイルが入ったフォルダ | |
【4】【5】 | フォルダ | wp-includes/template-loader.php/single.php | |
【1】 | php | index.php | ファイル構成の基本的なファイル、トップページにも使われる |
【2】【3】 | php | wp-blog-header.php | wp-load.phpやテンプレートファイルを読み込み |
php | wp-load.php | 関数やクラス定義が書かれたファイルを読み込む | |
php | wp-config.php | 各種設定情報が書かれたファイル | |
php | wp-settings.php | 変数、関数、クラスの基本設定 | |
php | wp-signup.php | ユーザー名やサイト名、アドレスなどサイト登録に必要なファイル | |
php | wp-login.php | ユーザー登録、認証に必要なファイル | |
php | wp-activate.php | ユーザーアカウントを有効にするファイル | |
php | wp-trackback.php | トラックバックに必要なファイル | |
php | wp-mail.php | メールからブログ投稿する機能が書かれたファイル | |
php | wp-comments-post.php | コメント機能が書かれたファイル | |
php | wp-cron.php | WordPressの自動処理システムを管理するファイル | |
php | xmlrpc.php | 管理画面以外からの記事投稿 | |
txt | .htaccess | アクセスを制御するとても重要なファイル。 |
更に詳しいユーザーの訪問からワードプレスが画面表示までの流れは、別のページでご紹介しています。