Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPBカップ
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

WordPressの実際の仕組み(インフォグラフィック)

WordPressが舞台裏でどのように動いているかを理解することは、とても興味深いことです。ほとんどのユーザーにとっては、URLを入力すればページがすぐに読み込まれるという単純なものに見えます。しかし、実際にはバックグラウンドで多くのことが起こっているのです。

数年前にWordPressを使い始めたとき、私たちはWordPressがどのように機能するのかを徹底的に調べました。そして今、私たちはWordPressについてもっと理解していただけるよう、その知識を簡単なキーワードで皆さんと分かち合うためにここにいます。

このガイドでは、WordPressの内部構造について説明します。また、わかりやすいインフォグラフィックもご用意しました。

How WordPress Works Behind the Scenes

WordPressとは?

WordPressはサイトビルダーであり、コンテンツ管理システムです。オープンソースのソフトウェアで、誰でもどんなサイトでも作ることができる。

2003年にブログ・プラットフォームとしてスタートしたが、すぐにCMSへと変貌を遂げ、後に本格的なウェブサイト構築プラットフォームとなった。現在では、インターネット上のすべてのサイトの43%以上を支えている。

WordPressの進化、歴史、長所と短所についてさらに詳しく知りたい方は、 WordPressとは何かWordPressサイトを構築するのにいくらかかるかについての包括的なガイドをご覧ください。

なぜWordPressの仕組みを学ぶべきなのか?

WordPressはオープンソースのソフトウェアであり、誰でもそのコードを研究し、アプリ(プラグイン)やテンプレート(テーマ)を書くことができる。

長年にわたり、WordPressがソフトウェアとしてどのように機能するかを学ぶだけで、数え切れないほどの初心者がすぐに上級ユーザーになるのを見てきました。

また、WordPressのパフォーマンスを向上させ、プロジェクトでより良いコードを書く方法についても学ぶことができます。

このガイドでは、すべてのプロセスをステップ・バイ・ステップで説明します。ユーザーがページをリクエストした時点から開始し、そのページが完全に読み込まれた時点で終了します。

準備はいいかい?始めよう

Click to View the Behind the Scenes WordPress Infographic

詳しくは下記のチュートリアルをご覧ください。

1.wp-config.phpファイルを読み込む

wp-config.phpはWordPressの設定ファイルです。WordPressサイトのグローバル変数を設定し、WordPressデータベース情報を含みます。明らかな理由から、WordPressが最初に読み込むファイルです。

wp-config.phpファイルとその編集方法についてさらに詳しく。

2.初期定数の設定

wp-config.phpファイルを読み込んだ後、WordPressは初期定数の設定に移ります。

これには、WordPressのデフォルトのアップロード場所最大ファイルサイズ、wp-config.phpファイルで設定されたその他の初期定数などの情報が含まれます。

3.advanced-cache.phpファイルをロードする。

あなたのサイトにadvanced-cache.phpファイルが存在する場合、WordPressは次にそれを読み込みます。

このファイルはドロップインファイルとして機能し、いくつかの人気のあるプラグイン、特にWordPressのキャッシュプラグインで使用されます。あなたのサイトがこのファイルを使用している場合、プラグイン画面に「ドロップイン」という新しい項目が表示されます。

advanced-cache.php file appearing as drop-in

4.wp-content/db.phpファイルをロードする。

WordPressでは、開発者が独自のデータベース抽象化レイヤーを作成し、wp-contentフォルダ内に配置されたdb.phpファイルに読み込むことができます。WordPressのキャッシュプラグインは、データベースのパフォーマンスを向上させるために一般的にこれを使用します。

あなたのサイトにこのファイルがあれば、WordPressはそれを読み込みます。

5.MySQL に接続し、データベースを選択します。

WordPressは次に進むのに十分な情報を得た。MySQL サーバーに接続し、データベースを選択します。

WordPressがデータベースに接続できない場合、「Error establishing database connection」というエラーが表示され、WordPressはここで終了します。

すべてがうまくいけば、次のステップに進む。

6.object-cache.phpまたはwp-includes/cache.phpファイルをロードする。

WordPressはobject-cache.phpファイルを探します。存在しない場合は、WordPressはwp-includes/cache.phpファイルの読み込みに移ります。

7.wp-content/sunrise.phpファイルをロードする。

マルチサイトネットワークの場合、WordPressはwp-contentフォルダにsunrise.phpファイルがあればそれを探します。

8.ローカライゼーション・ライブラリのロード

WordPressは、wp-includesフォルダー内のl10n.phpライブラリを読み込みます。このファイルはWordPressのローカリゼーションシステムをロードし、翻訳をロードし、ロケールを設定します。

WordPressを他の言語で使用する方法については、こちらのガイドをご覧ください。

9.マルチサイトプラグインのロード

マルチサイトネットワークの場合、WordPressはマルチサイトプラグインを読み込みます。WordPressのマルチサイトネットワークでプラグインがどのように機能するかについては、さらに詳しくご覧ください。

Network activated plugins

10.アクション ‘muplugins_loaded’ を実行する。

muplugins_loadedアクションがWordPressによって実行されるようになりました。このアクションはWordPressマルチサイト上のネットワーク有効化したプラグインにのみ利用可能です。

11.有効化したプラグインを読み込む

WordPressは、サイト上の有効化したプラグインをすべて読み込みます。これは、WordPressデータベースのオプションテーブルのactive_pluginsエントリーを検索することによって行われます。これにより、WordPressはサイトにインストールされているが有効化していないプラグインを無視する権限がありません。

12.pluggable.phpファイルを読み込む

pluggable.phpファイルには、WordPressプラグインで再定義できる関数が含まれています。

WordPressは、他のプラグインがすでにこのファイル内で関数を定義しているかどうかを確認します。そうでない場合は、プラグイン自身が関数を定義します。

13.アクション ‘plugins_loaded’ を実行する

WordPressは’plugins_loaded’アクションを実行します。

これにより開発者は、有効化したプラグインがすべてロードされた後に実行されるように関数をフックすることができる。

14.書き換えルールのロード

WordPressはリライトルールを読み込みます。これらのリライトルールは、WordPressがSEOフレンドリーなURLを使用するのに役立ちます。

15.wp_query、$wp_rewrite、$wpをインスタンス化する。

この時点で、WordPressは以下のオブジェクトをロードする:

wp_query:WP_Queryクラスを保持するグローバルインスタンス。WordPressの典型的なクエリーフォーマットで要求されるコンテンツをWordPressに伝えます。

wp_rewrite:WP_Rewriteクラスを保持するグローバルインスタンス。リライトルールと関数が含まれており、要求されたコンテンツを表示するためにどのURLを使うかをWordPressに伝えます。

wp:WPクラスのグローバルインスタンスには、リクエストを解析してメインクエリーを実行する関数が含まれます。

16.アクション ‘setup_theme’ を実行する

WordPressは「setup_theme」アクションの実行に移ります。このアクションはWordPressテーマがロードされる前に実行されます。

17.子テーマのfunctions.phpファイルをロードする。

functions.phpファイルはプラグインとして機能し、WordPressテーマでサイトにテーマ固有の機能を追加するために使用されます。子テーマを使用している場合、WordPressは子テーマのfunctions.phpファイルを読み込みます。

そうでない場合は、現在有効化したテーマのfunctions.phpファイルを読み込みます。

18.親テーマのfunctions.phpファイルをロードする。

子テーマを使用している場合、WordPressは親テーマのfunctions.phpファイルを読み込みます。

19.アクション ‘after_setup_theme’ を実行する。

このアクションはWordPressがテーマを設定し、テーマ機能をロードした後に実行されます。テーマが利用できる最初のアクションです。

20.現在のユーザーオブジェクトの設定

この時点でWordPressは現在のユーザーオブジェクトを読み込みます。これにより、WordPressはユーザーの権限グループと能力に従ってリクエストを管理することができます。

21.アクション「init」を実行する

WordPressはここまでで、必要な重要情報をすべて読み込んだ。次に、’init’アクションを実行します。このアクションは、コアで利用可能なブロックや、そのサイトにインストールされているプラグインによって提供されるブロックも登録します。

このアクションにより、開発者はWordPressが前述の情報をすべて読み込んだ後に実行する必要のあるコードを追加することが有効化されます。

22.アクション ‘widget_init’ を実行する。

widget_initアクションにより、開発者はこの時点でウィジェットを登録し、必要なコードを実行することができます。

23.wp()の実行

WordPressは、wp-includes/functions.phpファイルにあるwp()関数を呼び出します。これはWordPressのクエリーグローバル$wp、$wp_query、$wp_the_queryを設定し、$wp->mainを呼び出します。

24.リクエストの解析

これでWordPressはユーザーリクエストを解析するのに必要な情報をすべて手に入れた。ユーザーのリクエストに一致するリライトルールをチェックすることから始めます。

そして、クエリー変数フィルターを実行し、アクションフックをリクエストし、ヘッダーリクエストを送信する。

25.クエリーの実行

クエリーに一致するコンテンツがない場合、WordPressはis_404変数を設定する。

そうでなければ、WordPressはクエリー変数を読み込む。

そして、WP_Query->get_posts()を実行します。

次に、WP_QueryオブジェクトでDO_ACTION_REF_ARRAY ‘pre_get_posts’ アクションを実行します。

WordPressはここでapply_filtersを実行してクエリーをクリーンアップし、いくつかの最終チェックを実行する。

さて、データベースから投稿をフェッチし、posts_resultsとthe_postsフィルターを適用する。

クエリー部分はWordPressが投稿を返すことで終わる。

26.アクション「template_redirect」を実行する

WordPressはtemplate_redirectアクションを実行します。このフックはWordPressがどのテンプレートページをロードするかを決定する直前に実行されます。

27.フィードテンプレートのロード

リクエストされたコンテンツがRSSフィードの場合、WordPressはフィードテンプレートを読み込みます。

28.ロードテンプレート

WordPressはテンプレート階層に基づいてテンプレートファイルを探します。そして、通常WordPressのループを含むテンプレートを読み込みます。

29.アクション「シャットダウン」を行う

すべてのPHPの実行を終了する直前に、WordPressはシャットダウンと呼ばれる最後のアクションを実行する。

WordPressはここで動作を停止します。コードを実行し、ユーザーが要求したウェブページを生成しました。

さて、あなたのウェブホスティングサーバーは、WordPressによって生成されたウェブページを送信することによって、ユーザーのリクエストに返信します。

このページにはHTML、CSS、Javascriptのコードが含まれており、ユーザーのブラウザーに画面上での表示方法を指示します。

驚きだろう?これらのことはすべてミリ秒以内に起こります。これらの最高のWordPressホスティングサービスのいずれかを使用している場合、あなたのページは、理想的には数秒でロードされます。

この投稿がWordPressの裏側でどのように動作しているかを知る一助となれば幸いです。WordPressの管理エリアを保護するためのヒントや、WordPressの便利なTips、トリック、ハックを紹介したこちらのガイドもご覧ください。

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

情報開示 私たちのコンテンツは読者支援型です。これは、あなたが私たちのリンクの一部をクリックした場合、私たちはコミッションを得ることができることを意味します。 WPBeginnerの資金源 をご覧ください。3$編集プロセスをご覧ください。

アバター

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

究極のWordPressツールキット

ツールキットへの無料アクセス - すべてのプロフェッショナルが持つべきWordPress関連製品とリソースのコレクション!

Reader Interactions

31件のコメント返信を残す

  1. MJB

    hm – I am kind of missing step 0

    so is this a correct assumption`?

    a URL comes in at my hosted webserver
    requesting let’S say my home page

    then the webserver fires up step (1) ?
    which then runs until step (24)
    where WP parses the incoming URL to figure out next steps?

    • WPBeginner Support

      Step 0 can certainly be a URL linking to the site, around step 15 is where the specific page would be considered.

      管理者

  2. Mike Ross

    What about index.php in the root?

    I don’t get it…There are guides out there that lay out a totally different sequence of WordPress initialization.

    • Mike Ross

      No, I’m not talking about the theme’s homepage template. I’m taking about the index.php at the root, which is a part of the WordPress core. It triggers wp-blog-header.php, which then loads wp-load.php which sets up the entire WordPress environment.

      • WPBeginner Support

        The index.php in the root folder tells WordPress to load your theme :)

        管理者

      • Terry Woods

        That is correct

  3. Jason

    Why start from wp-config.php ? I thought it was from index.php

  4. Petru Ciucur

    This is THE Article. Thanks !

    • WPBeginner Support

      Glad our guide was helpful :)

      管理者

  5. Juan Johnson

    HI wpbeginner.
    I noticed that in your sequence, you mentioned that wp does this and then that. Physical, where is the instance of wp()? On the server? Does this happens in between an initial load page post request when I use google browser and the final loading of the wp dashboard after login?

    • WPBeginner Support

      You may want to take another look at the infographic for understanding the loading and how it works.

      管理者

  6. Juan Johnson

    I am a programmer. I am getting more into the web page design, however, I cannot let go of wanting to know what is going on behind the scenes. You article has given me a foundation to start confidently constructing web pages.

    • WPBeginner Support

      Glad our guide was helpful :)

      管理者

  7. Paul McDevitt

    This is brilliant. Ran into several issues with old, expired plugins, updating PHP, etc, and a virus (probably because of the prior items.) So all locked down and scrubbed up now, but wanted to understand better the sequence of events as looking into any one PHP file is like trying to read a bowl of spaghetti, as I did not understand the sequencing of the activities. So absolutely amazing. Love this.

    Thanks

    • WPBeginner Support

      Glad our article was helpful :)

      管理者

  8. Naresh

    very clear article.

    • WPBeginner Support

      Thank you :)

      管理者

  9. Chinenye

    I want to really know what wordpress does, how can I make and share posts through word press? What does it do for me apart from creating a site?

  10. ganesh

    very interesting

  11. Adrian

    Interesting but not really a definition of how Wordpress works. This describes what it does, not how it does it. Would be useful to also know how it does things as well as what it does. For example how does it know which theme to load? Without the how all the above is very high level.

  12. amir saleem

    17. Load Child Theme’s functions.php File

    The functions.php file acts as plugin and is used in WordPress themes to add theme specific features to your website. If you are using a child theme, then WordPress will now load your child theme’s functions.php file.

    Otherwise, it will go on and load your current active theme’s functions.php file.

    18. Load Parent Theme’s functions.php File

    [ If you are using a child theme ], then WordPress will now load your parent theme’s functions.php file.

    check the text in brackets and match all the wording here will be replace [ if you are using a parent theme ].

    Thanks.

    • Caleb

      Amir, I think what the OP is trying to say is that if there is a child theme, then obviously there would be a parent and child functions.php and wordpress first loads the child themes functions.php before loading the parent’s. Otherwise, it just loads the parent’s functions.php straightaway.

  13. Altab Hossen

    Thanks for this nice explanation and info-graphics is so cool !!

  14. Kristian

    And people wonder why WordPress sites are slow. It does all that at run-time for every single page view!

  15. Johnpaul Onwueme

    Thanks for the info graphics

  16. deborah

    still seems complicated to me, but all tech does

  17. Jason

    Would you be willing to offer this as a printed poster? I don’t know if it would generate much interest or make you any money, but since it is such a nice graphic it might make a nice office wall hanging.

  18. anis

    Thank you for this article . I wanted to know since long time
    the different steps for loading .

    What is a database abstraction layer and how to configure it ?

返信を残す

コメントありがとうございます。すべてのコメントは私たちのコメントポリシーに従ってモデレートされ、あなたのメールアドレスが公開されることはありませんのでご留意ください。名前欄にキーワードを使用しないでください。個人的で有意義な会話をしましょう。