学び

【WordPress画面表示 概要編】ワードプレス起動から画面表示されるまでの流れ(WP構成やPHPの動き)ご紹介

【概要編】ワードプレス起動から画面表示されるまでの流れ(WP構成やPHPの動き)ご紹介 学び
スポンサーリンク

【概要編】ワードプレス起動から画面表示されるまでの流れ(WP構成やPHPの動き)のご紹介

ご訪問ありがとうございます。
今回は、ワードプレス起動から画面表示されるまでの流れ(WP構成やPHPの動き)についてご紹介します。

 

ガンスターヒーローズ | ゲーム | 中古・新品通販の駿河屋

ホームページ作成/運用関連サイトマップのご紹介

ホームページ作成/運用サイトマップをご紹介します。

シューティングゲーム | ゲーム | 中古・新品通販の駿河屋

ワードプレス起動からホームページが表示されるまでの流れ(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 アクセスを制御するとても重要なファイル。

更に詳しいユーザーの訪問からワードプレスが画面表示までの流れは、別のページでご紹介しています。

タイトルとURLをコピーしました