WordPressの仕組みを図解|PHP・データベース・テーマの役割を解説

未分類

WordPressでサイトを運営していると、「記事はどこへ保存される?」「テーマとプラグインは何をしている?」「URLを開くと、なぜページが表示される?」と仕組みが気になることがあります。

WordPressは、完成済みのHTMLファイルだけを置く静的サイトとは異なり、アクセスのたびにPHPが動き、データベースから投稿や設定を取り出し、テーマと組み合わせてHTMLを生成するCMSです。

大きく分けると、WordPress本体の処理を担うコア、記事・設定を保存するデータベース、見た目を作るテーマ、機能を追加するプラグイン、画像などを置くアップロード領域で構成されます。

管理画面で記事を保存すると本文やタイトルは主にデータベースへ入り、アップロードした画像ファイルは通常wp-content/uploadsへ保存されます。

読者がURLへアクセスすると、WebサーバーがWordPressを起動し、URLに合う投稿データとテンプレートを選び、ブラウザへHTML・CSS・JavaScript・画像を返します。

仕組みを理解すると、バックアップで「ファイルだけ」「データベースだけ」を保存しても不十分な理由や、テーマ変更で記事が消えない理由を判断しやすくなります。

この記事では、WordPressの構成、ページ表示の流れ、管理画面から記事が公開される仕組み、テーマ・プラグイン・データベースの役割を図解します。

この記事でわかること

  • WordPressを構成するファイルとデータベースの役割
  • URLへアクセスしてページが表示されるまでの流れ
  • テーマ・プラグイン・ブロックエディターの関係
  • バックアップ・キャッシュ・更新で注意するポイント

WordPressの仕組みを最初に図解

読者が投稿ページへアクセスした場合、基本的には次の流れで画面が作られます。

読者のブラウザ
      │ ① URLへアクセス
      ▼
Webサーバー(Apache / Nginxなど)
      │ ② WordPressのPHPを実行
      ▼
WordPressコア
      │ ③ URLを解析し、必要な投稿を問い合わせる
      ├──────────────► データベース
      │                 投稿・固定ページ・設定・ユーザー
      │ ④ データを受け取る
      ▼
テーマ + プラグイン
      │ ⑤ テンプレートへ内容を組み込む
      ▼
HTML・CSS・JavaScript・画像
      │ ⑥ ブラウザへ返す
      ▼
読者にページが表示される

キャッシュ機能を使っている場合は、毎回すべての処理を行わず、保存済みのHTMLなどを途中から返すことがあります。

WordPressはHTMLを動的に生成する

投稿ごとに完成済みのHTMLファイルを手作業で用意するのではなく、PHPプログラムが記事データとテンプレートを組み合わせます。

同じテーマの投稿が同じレイアウトで表示されるのは、一つのテンプレートへ異なる記事データを入れているからです。

ブラウザへWordPress本体が届くわけではない

PHPの処理とデータベースへの問い合わせはサーバー側で行われます。

読者のブラウザが受け取るのは、処理結果であるHTML、CSS、JavaScript、画像などです。

WordPressを構成する5つの要素

構成要素 主な役割 代表例
WordPressコア CMS全体の基本処理 wp-adminwp-includes
データベース 記事・設定・ユーザーなどを保存 MySQL・MariaDB
テーマ ページ構成と見た目を決める テンプレート、CSS、theme.json
プラグイン 必要な機能を追加・変更する フォーム、SEO、バックアップ
メディア・独自ファイル 画像・PDF・CSSなどを保存 wp-content/uploads

WordPressコア

コアは、ログイン、投稿管理、ユーザー管理、URL解析、データベース操作、テーマ・プラグインの読み込みなど、WordPressの土台を担当します。

公式の更新で置き換わる領域なので、wp-adminwp-includesを直接編集しないことが基本です。

データベース

WordPress公式ドキュメントでは、WordPressの利用にMySQLまたはMariaDBデータベースが必要と説明されています。

投稿本文、タイトル、公開状態、カテゴリー、コメント、ユーザー、サイトURL、プラグイン設定などが複数のテーブルへ保存されます。

テーマ

テーマは、投稿ページ、一覧ページ、404ページ、ヘッダー、フッターなどの表示構造とデザインを担います。

ブロックテーマでは、templatespartspatternstheme.jsonなどを組み合わせてサイトを構成します。

プラグイン

WordPress公式は、プラグインをWordPressの機能を拡張するPHPスクリプトとして説明しています。

問い合わせフォーム、セキュリティ、キャッシュ、EC、カスタムブロックなどを、コアを直接変更せずに追加できます。

アップロードファイル

管理画面からアップロードした画像やPDFは、一般的にwp-content/uploads内の年月フォルダへ保存されます。

画像ファイルの情報やURLはデータベースにも登録されるため、ファイルとデータベースの両方が必要です。

WordPressの主なフォルダ構成

wordpress/
├─ index.php
├─ wp-config.php
├─ wp-admin/
├─ wp-includes/
└─ wp-content/
   ├─ themes/
   ├─ plugins/
   └─ uploads/

index.php

サイトへ届いたリクエストをWordPressの処理へ渡す入口の一つです。

パーマリンク設定とWebサーバーの書き換え機能により、多くの公開URLが最終的にWordPressへ渡されます。

wp-config.php

wp-config.phpには、データベース名、ユーザー名、パスワード、ホスト、テーブル接頭辞などの基本設定が含まれます。

WordPress公式も、データベース接続情報を含む重要な設定ファイルとして案内しています。

Webへ公開したり、バックアップを誰でも読める場所へ置いたりしないでください。

wp-admin

ダッシュボード、投稿編集、プラグイン管理など、管理画面の処理に関係するコアファイルが入ります。

wp-includes

WordPressが提供する関数、クラス、APIなど、管理画面と公開画面の両方で利用されるコア部品が入ります。

wp-content

テーマ、プラグイン、アップロード画像など、サイト固有の内容が集まりやすいフォルダです。

引っ越しやバックアップでは、データベースとともに特に重要な領域になります。

データベースには何が保存される?

代表的なテーブル 主な内容
wp_posts 投稿・固定ページ・添付ファイル・カスタム投稿
wp_postmeta 投稿に追加されたメタ情報
wp_options サイト設定・テーマ・プラグイン設定
wp_users ユーザーの基本情報
wp_usermeta 権限・プロフィールなどの追加情報
wp_terms関連 カテゴリー・タグ・分類
wp_comments コメント情報

wp_は標準的な接頭辞であり、実際のサイトでは別の文字列へ変更されている場合があります。

投稿と固定ページは同じテーブルへ入る

WordPressは、投稿・固定ページ・メディア添付情報・カスタム投稿タイプを、主にwp_postsへ保存し、種類を示す値で区別します。

ブロックエディターの内容も投稿本文として保存される

ブロックエディターで作った文章や画像ブロックは、ブロックを示すコメント形式を含む本文データとして保存されます。

表示時にWordPressがブロックを解析し、各ブロックのHTMLへ変換します。

プラグインが独自テーブルを作る場合もある

フォーム送信、アクセス解析、EC注文など大量・複雑なデータを扱うプラグインは、独自テーブルを作成する場合があります。

プラグイン削除時にテーブルが残るかどうかは製品ごとに異なります。

URLを開いてページが表示されるまで

STEP1:ブラウザがサーバーへリクエストする

読者がURLを入力すると、DNSでドメインに対応するサーバーを見つけ、HTTPS通信でページを要求します。

STEP2:WebサーバーがWordPressへ処理を渡す

ApacheやNginxは、画像などの静的ファイルを直接返すか、投稿URLをPHPの実行環境へ渡します。

STEP3:WordPressが設定を読み込む

wp-config.phpの情報を使ってデータベースへ接続し、コア、プラグイン、テーマを読み込みます。

STEP4:URLを解析してメインクエリを作る

WordPressは、要求されたURLが投稿、固定ページ、カテゴリー一覧、検索結果、404のどれに該当するかを判断します。

その判断に基づき、必要な投稿を取得するメインクエリを作ります。

STEP5:データベースから記事を取得する

タイトル、本文、公開日、著者、カテゴリーなどを取得します。

プラグインが追加情報を問い合わせる場合もあります。

STEP6:テーマのテンプレートを選ぶ

投稿ならsingle系、固定ページならpage系、一覧ならarchive系など、テンプレート階層に沿って使用ファイルを決定します。

ブロックテーマとクラシックテーマではファイル形式が異なりますが、要求に合うテンプレートを選ぶ考え方は共通します。

STEP7:HTMLを生成してブラウザへ返す

テーマが投稿データをヘッダー・本文・サイドバー・フッターへ組み込みます。

プラグインの処理やショートコード、ブロックのレンダリングも行われ、完成したHTMLが返されます。

STEP8:ブラウザがCSS・画像・JavaScriptを追加取得する

最初のHTMLを受け取ったブラウザは、そこへ記載されたCSS、画像、フォント、JavaScriptなどを取得し、画面を描画します。

記事を投稿して公開されるまで

管理者がブロックエディターへ入力
        │
        ▼
WordPressが権限・入力内容を確認
        │
        ▼
投稿本文・タイトル・状態をデータベースへ保存
        │
        ├─ 画像ファイル → wp-content/uploads
        └─ 画像情報     → データベース
        │
        ▼
公開URLへアクセスされたときに
テーマと組み合わせてHTMLを生成

下書きと公開は状態の違い

同じ投稿データでも、下書き、予約、非公開、公開などの状態が保存されます。

公開状態と権限に応じて、一般の読者が閲覧できるかが変わります。

リビジョンが保存される

WordPressは編集履歴をリビジョンとして保存するため、以前の状態へ戻せる場合があります。

リビジョン数が増えるとデータベース容量へ影響しますが、単純にすべて削除する前に復元用途を考えましょう。

画像は複数サイズが生成される

画像をアップロードすると、テーマや設定に応じてサムネイル・中・大など複数サイズの画像が作られます。

データベースには添付ファイルとしての情報が保存されます。

テーマの仕組み

テーマを変えても記事本文は通常消えない

記事本文はデータベースへ保存され、テーマは表示方法を担当します。

そのためテーマを切り替えても記事自体は残ります。

ただし、テーマ固有のショートコードや独自ブロックへ依存している場合は、表示が崩れることがあります。

テンプレート階層で表示ファイルを選ぶ

WordPressは、より具体的なテンプレートから共通テンプレートへ順に探します。

専用テンプレートがない場合に汎用テンプレートへ戻ることで、すべてのURLを表示できます。

CSSが見た目を決める

同じHTMLでも、CSSによって文字サイズ、色、余白、列数、レスポンシブ表示が変わります。

子テーマと直接編集の違い

配布テーマを直接変更すると、更新時に変更が失われる可能性があります。

クラシックテーマのコードを継続的に変更する場合は、子テーマや独自プラグインなど、更新と分離した方法を検討します。

プラグインの仕組み

フックを使って処理へ参加する

WordPressには、特定のタイミングで処理を追加するアクションと、値を変更するフィルターがあります。

プラグインはこれらのフックを使い、コアファイルを直接書き換えず機能を追加します。

公開画面だけでなく管理画面も変更できる

管理メニュー、投稿編集欄、REST API、定期実行、メール送信など、幅広い部分へ関与できます。

プラグイン同士が競合する理由

複数のプラグインが同じ処理・URL・JavaScript・CSSを変更すると、想定しない順序や重複が生じます。

不具合時はバックアップ後に検証環境で一つずつ停止し、原因を切り分けます。

無効化と削除は違う

無効化は処理を止める操作で、設定やデータが残る場合があります。

削除時に設定を消すかどうかはプラグインの設計・設定によって異なります。

ブロックエディターの仕組み

文章を部品単位で編集する

段落、見出し、画像、ボタン、カラムなどをブロックとして配置します。

投稿者はコードを直接書かなくても、構造化された内容を作れます。

静的ブロックと動的ブロックがある

保存時にHTMLが投稿本文へ入るブロックと、表示時にPHPなどで最新内容を生成する動的ブロックがあります。

最新記事一覧、ログイン状態で変わる表示、商品情報などは動的表示が向きます。

再利用できるパターン・同期パターン

複数ブロックの組み合わせをパターンとして登録し、同じレイアウトを繰り返し使えます。

同期する設定では、一か所の変更を複数ページへ反映できます。

WordPress.orgとWordPress.comの違い

比較 WordPress.org型 WordPress.com
サーバー 自分でレンタル・管理 サービス側が提供
インストール 自分またはホスティング会社 サービスへ登録
ファイル・DB管理 契約環境で管理 プランとサービス仕様による
テーマ・プラグイン 原則自由に導入 プラン・仕様による制限あり
保守 運営者の責任が大きい 基盤管理をサービス側が担当

「WordPressの仕組み」としてPHP・MySQL・サーバー構成を詳しく扱う場合は、自分で設置するWordPress.org型を指すことが多いでしょう。

キャッシュを使うと表示が速くなる仕組み

ページキャッシュ

生成済みHTMLを保存し、次のアクセスへ再利用します。

PHP実行とデータベース問い合わせを減らせます。

オブジェクトキャッシュ

データベースから取得した値や計算結果を一時保存し、同じ問い合わせを減らします。

ブラウザキャッシュ

画像・CSS・JavaScriptを読者の端末へ保存し、再訪時のダウンロードを減らします。

CDN

画像や静的ファイルを複数地域の配信拠点から返し、サーバーまでの距離と負荷を減らします。

キャッシュで古い表示が残ることがある

記事やCSSを更新しても、サーバー、CDN、ブラウザのキャッシュが古い内容を返す場合があります。

変更後は関係するキャッシュを順に消し、ログイン状態と未ログイン状態の両方を確認します。

バックアップはファイルとデータベースの両方が必要

ファイルだけでは記事本文が戻らない

テーマ・プラグイン・画像を保存しても、データベースがなければ投稿本文や多くの設定を復元できません。

データベースだけでは画像と独自コードが戻らない

投稿データがあっても、uploadsの画像、テーマ、プラグインがなければ完全な表示になりません。

復元テストまで行う

バックアップファイルが作成されていても、破損や権限不足で復元できない場合があります。

検証環境で定期的に復元し、手順と必要時間を確認しましょう。

WordPressが遅くなる主な場所

原因 仕組み上の問題 確認方法
重いプラグイン 毎回多くのPHP・DB処理を追加 検証環境で停止比較
大きな画像 転送量と描画時間が増える 画像サイズ・形式を確認
複雑なDB問い合わせ 取得に時間がかかる クエリ監視・サーバーログ
低いサーバー性能 PHP・DB処理が遅い CPU・メモリ・PHP設定
キャッシュ不足 同じページを毎回生成 キャッシュヘッダー・設定
外部サービス待ち 広告・フォント・APIの応答待ち ブラウザ開発者ツール

更新が必要な理由

コア・テーマ・プラグインは別々に更新される

それぞれ別の開発者と周期で変更されるため、互換性を確認しながら更新します。

更新は機能追加だけではない

脆弱性修正、PHP・WordPress最新版への対応、不具合修正、性能改善が含まれます。

本番で直接更新しない選択

重要なサイトでは、バックアップを取得し、ステージング環境で表示・フォーム・決済などを確認してから本番へ適用します。

仕組みを理解すると解決しやすいトラブル

テーマ変更後にデザインだけ崩れた

投稿データは残り、テーマ固有のCSS・テンプレート・ブロックが変わった可能性があります。

画像が404になる

データベースに画像URLがあっても、uploads内の実ファイルがない、URL置換が不完全、権限が違う可能性があります。

プラグイン停止で管理画面へ入れる

プラグインのPHPエラーや競合がWordPress起動を止めていた可能性があります。

引っ越し後に旧URLへ飛ぶ

wp_optionsや投稿本文、ウィジェット、シリアライズされた設定へ旧URLが残っている場合があります。

専用ツールや正しい移行手順を使い、単純なSQL置換を自己判断で行わないようにします。

よくある質問

WordPressの記事はどのファイルへ保存されますか?

記事本文やタイトルは主にデータベースへ保存されます。

投稿ごとのHTMLファイルが作られて保存される仕組みではありません。

テーマを変えると記事は消えますか?

通常、記事データは消えません。

ただしテーマ固有のショートコード・ブロック・カスタムフィールド表示は崩れる可能性があります。

画像はデータベースに入っていますか?

画像の実ファイルは通常wp-content/uploadsへ保存され、画像のURL・タイトル・サイズ情報などがデータベースへ登録されます。

PHPを知らなくてもWordPressを使えますか?

投稿や基本設定は管理画面から行えます。

独自テーマ、複雑なプラグイン、障害調査ではPHP・HTML・CSS・データベースの知識が役立ちます。

静的HTMLサイトとの違いは何ですか?

静的サイトは完成済みHTMLをそのまま返すのが基本です。

WordPressはアクセス時にデータとテンプレートからHTMLを生成するのが基本ですが、キャッシュや静的化を組み合わせる場合もあります。

参考資料

まとめ

この記事のポイントをまとめます。

  • WordPressはPHPでHTMLを動的に生成するCMSです
  • 記事・設定・ユーザーは主にデータベースへ保存されます
  • 画像の実ファイルは通常wp-content/uploadsへ保存されます
  • WordPressコアはCMSの基本処理を担当します
  • テーマはページ構成とデザインを担当します
  • プラグインはフックを使って機能を追加します
  • URLに応じてメインクエリとテンプレートが選ばれます
  • ブロックエディターの内容も投稿データとして保存されます
  • 完全なバックアップにはファイルとデータベースが必要です
  • キャッシュ・更新・移行は構成要素ごとに確認します

WordPressは、記事を完成したHTMLファイルとして保存するのではなく、PHP、データベース、テーマ、プラグインを組み合わせて、アクセスされたときにページを作ります。

記事本文と設定は主にデータベース、画像やテーマ・プラグインはサーバー上のファイルとして保存されるため、どちらか一方だけではサイト全体を復元できません。

テーマは見た目、プラグインは追加機能、コアは全体の制御という役割を理解すると、不具合の原因を切り分けやすくなります。

管理画面で見える一つのサイトの裏側に、Webサーバー・PHP・データベース・複数のファイルが連携していると理解することが、安全な更新・バックアップ・カスタマイズの第一歩です。

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