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の実際の仕組み(インフォグラフィック)

編集メモ: WPBeginner のパートナーリンクから手数料を得ています。手数料は編集者の意見や評価に影響を与えません。編集プロセスについて詳しく知る。

WordPressが舞台裏で実際にどのように動いているのか、不思議に思ったことはないだろうか。

一般的なユーザーにとっては、URLを入力すれば数秒でページが読み込まれるので単純に見えるが、その裏では多くのことが起きている。

このガイドでは、WordPressが舞台裏で実際にどのように機能しているのかを、わかりやすいインフォグラフィックも交えてご紹介します。

How WordPress Works Behind the Scenes

WordPressとは?

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

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

WordPressの進化、歴史、長所と短所についてさらに詳しくお知りになりたい方は、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プラグインを専門家が選んだ記事もご覧ください。

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$編集プロセスをご覧ください。

Avatar

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

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

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. MJB says

    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 says

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

      管理者

  3. Mike Ross says

    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.

  4. Juan Johnson says

    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 says

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

      管理者

  5. Juan Johnson says

    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.

  6. Paul McDevitt says

    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

  7. Chinenye says

    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?

  8. Adrian says

    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.

  9. amir saleem says

    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 says

      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.

  10. Kristian says

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

  11. Jason says

    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.

  12. anis says

    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 ?

返信を残す

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