WordPress(ワードプレス)のインストールも終え、Webサイト作成を楽しんでますか?このページではWordPressの仕組みについて解説します。仕組みを理解して今後のWebサイト作成・運営に活かしていきましょう!
Contents
WordPressの仕組みを理解する意義
もうすでにWordPressを使用してWebサイト開発している方はこう思うかもしれません。
別に仕組み理解していなくても
Webサイト作成に困ってないよ?
確かに仕組みを理解しなくてもWebサイトの作成はできます。しかし、仕組みを理解していると下記のような時に役立ちます。
- サーバ引っ越しする時
- ドメイン変更する時
- 記事が表示されないなどのトラブル時
仕組みを理解していると特にアクシシデント発生時に何が問題かを自分で考えて見つけ出せるようになります。構成を知っているとアクシデントがあった場合にどの辺りを調べれば良いかのあたりをつけることができます。
WordPressとは
WordPressとはブログ作成ソフトウェアです。ブログの投稿や編集などを行う機能や、その投稿・編集内容に基づいてWebページ表示に必要となるデータ(HTML)を生成する機能を持ちます。
下の図はWebページ表示の仕組みを説明した際にも用いた図の一部です。WordPressはWebサーバ上に存在し、ページ表示に必要なデータ要求されたタイミングで転送するデータ(HTML)を動的に生成します。
スポンサーリンク
WordPressの仕組み
WordPressはPHPファイル群から構成されるシステムです。
WordPressではこのPHPプログラムが動作してHTMLファイルを生成します。このHTMLを生成するときに出てくるもう一つの重要な登場人物がいます。それがMySQLです。
MySQLはデータベース管理システムです。MySQLのデータベースにはあなたが投稿した記事の本文や投稿日時、本文のバックアップなどが格納されています。
WordPressはページ表示の要求を受けた際に、そのページを表示するために必要なPHPを実行します。そして、実行されたPHPはそのページを表示するために必要なデータ(記事の本文)をMySQLから取得します。
PHPでは主にページの構成に関わる部分を生成し、肝心の記事の中身はMySQLから取得し、これらを組み合わせてHTMLを生成します。
記事の投稿や画像のアップロード等もWordPressで行うことが可能です。例えば記事の投稿時は、記事の本文等のコンテンツはPHPによりMySQLのデータベースに格納されます。
このように、WordPressはユーザからの要求に応じてPHPを実行し、そのPHPがMySQLを操作することで要求に応じた処理を実行します。
WordPressの構成
続いてWordPressの構成を見ていきたいと思います。WordPressは主に3つの部分から構成されています。
その3つとは、
- コア部
- コンテンツ生成部
- 管理画面生成部
です。
この名称は正式な名称ではなく、説明しやすいように私が独自に命名した名前になります
スポンサーリンク
コア部
このWordPressのコア部は主に二つのことを行います。
WordPressの起動
まずWordPressが実行される場合は最初に必ずこのコア部が動作します。このコア部が動作し、WordPressを動作させるにあたって必要なPHPが実行され、設定等を読み込みWordPressを起動します。
メインクエリーの作成と発行
WordPress起動直後にコア部が行うのがメインクエリーの作成と発行です。このメインクエリーの作成と発行により、テーマ部でページを作成するために必要になる投稿データを取得します。
クエリーが何なのか分からない方は、まずはクエリーとはデータベース(MySQL)から投稿データ(記事本文や投稿日時など)を取得する要求と捉えてこのページは読んでいただいて良いです。
ただクエリーはワードプレスにおいて重要なものですので、どんなものかはしっかり理解しておいたほうが良いです。クエリーやメインクエリーについては下のページで解説していますのでこのページを読み終わった後にでも是非読んでみてください。
ワードプレスのクエリとは?メインクエリとサブクエリの違いは?テーマの読み込み
コア部ではメインクエリー発行による投稿データ取得後に、指定されたテーマを読み込んでコンテンツ生成部を起動させます。そしてテーマ部がテーマに応じた構成・見た目に基づいてHTMLファイルを生成します。
スポンサーリンク
コンテンツ生成部
コンテンツ生成部は実際にページ表示に必要なデータ(HTML)を生成する部分です。コンテンツ生成部にはインストールしたテーマが含まれます。テーマはテーマ毎に異なる構成・見た目となっており、コンテンツ生成部はその構成に応じて必要なデータを、コア部が取得した投稿データやMySQLから読み込んでHTMLを生成します。またCSS(スタイルシート)も保持しており、このCSSによりページ各要素の見た目(色や大きさ、レイアウトなど)が決まります。
WordPressでは様々なテーマがインターネットからダウンロード可能であり、管理画面から簡単にテーマを他のテーマに差し替えることができます。テーマ内にはページの構成を生成するPHPや見た目を変えるCSSが存在し、これらのファイルがテーマ毎にカスタマイズされています。
このPHPとCSSの違いにより、テーマによってページの構成や見た目が変わるのです。ですので、自分でテーマを作ったりカスタマイズをしたい場合はデザイン力だけでなくPHPやCSSを作成する知識・技術が必要になります。
管理画面生成部
管理画面生成部は記事の投稿や自分のWebサイトの見た目をカスタマイズするための管理画面を生成する部分です。
ファイル構成
WordPressは大きく分けて3つの部分から構成されていることを説明しました。次は実際にWordPressフォルダの中を確認し、どのファイルやフォルダがそれぞれの部に該当するのか、そこにどんなファイルが存在するかを見ていきます。
スポンサーリンク
コア部
コア部はWordPressフォルダ直下のPHPファイル群およびwp-includesフォルダから構成されます。
WordPress起動時は必ず最初にindex.phpが実行され、そこからWordPressの設定やHTMLの生成が始まっていきます。また wp-config.php はどのMySQLを使用するかを設定したり、MySQLにアクセスするときのユーザー名やパスワードが記載されています。このようにこのコア部はWordPressが動作するのに必要なPHPファイルから構成されます。
また、wp-includesフォルダにはWordPressが提供する関数を定義したファイルなどが格納されています。PHPファイル内でその関数を実行することで、MySQLからデータを読み込んだり、逆に投稿した内容をMySQLにデータを書き込んだりすることができます。wp-includesフォルダにあるファイルはテーマ部・管理画面生成部・コア部のすべてから使用されるものになります。非常に多くの関数が定義されていますので、興味がある方は下記のサイトなどを参照すると良いと思います。
参考 関数リファレンスWordPress Codex 日本語版管理画面生成部
管理画面生成部はwp-adminフォルダ内のファイルから構成されます。このフォルダにはWordPressのダッシュボード画面(管理画面)を構成するファイル群が格納されています。
Webサイトに記事を投稿したりカスタマイズしたりする時にダッシュボードにログインすると思いますが、このフォルダ内のPHPファイル群が連動してあの画面を構成しています。
スポンサーリンク
コンテンツ生成部
コンテンツ生成部はwp-contentフォルダ内のファイルから構成されます。このコンテンツ生成部にはWordPressの特徴となるテーマやプラグインがあります。具体的にwp-contentフォルダにどのようなファイルが格納されているかを見てみましょう。
スポンサーリンク
wp-contentフォルダ
wp-contentフォルダはページを表示するためのデータ(コンテンツ)を生成するためのPHPファイルやWordPressでアップロードした画像ファイル等が存在します。
themes
themesフォルダにはインストールしたテーマを構成するファイルが格納されています。下の画像のフォルダはWordPressにインストールしたテーマ毎に生成されています。
さらにテーマフォルダの中を見てみましょう。例えばテーマ「twentyseventeen」のフォルダ以下は下図のようになっています。
PHPファイル群
このテーマ内に存在するPHPファイル群が実際にHTMLファイルを生成しています。ページの構成を決定したり、コア部が取得した投稿データやMySQLの読みこんだデータを基にHTMLファイルを生成します。たくさんのPHPファイルがあり、それぞれが異なる役割を果たしています。
例えばpage.phpは固定ページのHTMLを生成しますし、投稿ページはsingle.phpから生成されます。またページ内のヘッダー部分を生成するheader.phpやサイドバー部分を生成するsidebar.phpのように、部分的にHTMLを生成するものもあります。
これらのファイルは連動しており、例えば固定ページのHTMLを生成する際は、まずpage.phpが実行され、このpage.phpがheader.phpを実行してヘッダー部分を生成し、sidebar.phpを実行てサイドバー部分を生成する、といったように様々なPHPを実行して一つのWebページが生成されます。
PHPがどのようにして実行されているかは後述するページ表示時のPHPの動きで解説しています。
CSSファイル群
HTMLで指定されたタグやクラス毎にどういう見た目にするかが定義されています。
uploads
「メディアを追加」等でアップロードしたファイルが格納されます。例えば画像ファイル、動画ファイル等がここに格納されます。
スポンサーリンク
plugins
プラグインがこのフォルダに格納されます。プラグインはインストールして有効化することによりWordPressに対して機能を追加することが可能です。このプラグインもテーマ同様に多くのものがインターネット上に公開されており、それをインストールすることで好きなプラグインを使用することが可能です。
プラグインもPHPにより開発されています。
ページ表示時のPHPの動き
ページ表示のためのデータ要求が来た際にWordPressフォルダ内のPHPファイルがどのように動作するかを見てみましょう。
投稿ページを表示するときのPHP実行順序は下記の通りです。
Apache 等のウェブサーバーがindex.phpを実行
index.phpがwp-blog-header.phpを実行
(同時にWordPress起動用のPHPも実行していくがそちらは省略)
wp-blog-header.phpがwp関数を実行
このwp関数でメインクエリーが発行され投稿データが取得される
wp-blog-header.phpがtemplate-loader.phpを実行
template-loader.phpがテーマ内のsingle.phpファイルを実行
このとき実行されるPHPは表示するページの種類によって異なる
例えば
投稿ページの場合:single.php
固定ページの場合:page.php
要求されたページがない場合:404.php
single.phpが投稿ページを構成するのに必要なPHPを実行してページを作成
例えば
ヘッダー:header.php
サイドバー:sidebar.php
フッター:footer.php
記事本文は投稿データから取得して作成
ワードプレス起動時から single.php などのテンプレートファイルを実行するまでの処理については下記で紹介していますので、よりワードプレスのことを詳しく知りたい方は読んでみてください。
ワードプレス起動からテンプレートファイル実行までの処理の流れ仕組みから分かること
この仕組みを理解しているとたくさんのことに気づけると思います。
WebページはWordPressとMySQLから作られる
なので、サーバやドメインの引越しを行う時にはWordPressだけでなくMySQLの引越しも必要
投稿された情報はデータベースに保存されている
なので、データベース(MySQL)のバックアップは特に重要
WordPressとMySqlの紐付け情報はwp-config.phpに記載されている
なので、テーマはうまく表示されているのに記事本文が表示されないときにまず確認すべきはwp-config.php
要求されたタイミングでPHPが実行されHTMLが生成される
なので、サーバの処理能力は低いとページの表示速度が遅くなる
などなど。
仕組みを理解しておくと、自分で論理的に考えて問題が起きても解決していける力がつきますので、簡単な部分だけでもいいので理解しておくことをオススメします。
スポンサーリンク
まとめ
・WordPressではPHPファイルが連携してページ表示のためのデータ(HTML)が生成される
・記事本文はMySQLのデータベースに格納される
・WordPressは「コア部」「コンテンツ生成部」「管理画面生成部」の3つから構成される
・コア部は主にWordPressを起動を行う
・コンテンツ生成部は主にページの構成の生成を行い、さらにMySQLから記事本文を取得し、その構成へ埋め込むことでHTMLを生成する
・管理画面生成部は主にWordPressの管理画面の生成を行う
もっとWordPressの仕組みを知りたいという方には下のページがオススメです。
・クエリーについて知る
ワードプレスのクエリとは?メインクエリとサブクエリの違いは?・プログラムの動きを追う
VSCode でワードプレスデバッグ環境を構築する ワードプレスのテーマ開発環境にEclipseを導入・テーマを自分で作ってみる(ページは随時追加中です)
【ワードプレス】テーマの作り方①:まずは簡単なテーマを作ってページを表示する
すごくわかりやすくて助かりました!
投稿の内容がMySQLに格納されているなんて基本中の基本なのでしょうけど、
教えてもらうまで知らなかったです。
ワードプレス初心者さん
コメントありがとうございます!(そしてコメントの承認が遅れてしまって申し訳ございません…)
そう言っていただけると大変嬉しいです!
このページを作った甲斐がありました。
仕組みは知らなくてもワードプレスでウェブサイト作成はできますが、
仕組みを知っていると問題あった時などの対処法も思いつきやすくなって便利だと思います。
ワードプレス関連のページはどんどん追加していく予定ですので、
また読んでいただけると幸いです!
[…] ワードプレスの仕組みを「構成」と「PHPの動き」から解説 […]
初めまして。
突然のコメント失礼いたします。
ワードプレス初心者なのですが。。。
PHPおよびワードプレスをバージョンアップしたのですが、過去の記事が表示されなくなってしまいました。
今までは、投降した記事のタイトル、日時、内容の一部が表示されていたのですが、内容の一部が表示されなくなりました。
また、該当する記事のリンクをクリックすると、生地の中身が表示されなくなってしまいました。
最初は、split()がは使えないというエラーが出ており(どのファイルの何行目かという記載もなく)プラグインを1つずつ停止していったら、そのエラー表示はなくなりましたが、依然、投降した内容は表示されないままです。
この場合、何を操作したらよいでしょうか。
李さん
返信遅れてしまって申し訳ございません。
テーマも更新されていますか?
テーマは特にワードプレスのバージョンに追随する形で更新されているはずなので、
テーマも最新に更新した方が良いと思います。
もし、テーマが最近更新されていない場合、新しいバージョンのワードプレスに対応していない可能性もありますので、
他のテーマを利用することを検討しても良いかもしれません。
プラグインに関しても同様です。
また、PHPやワードプレスのバージョンを元に戻してみるのも良いと思います。
例えば、ワードプレスのバージョンを古いものにする方法は下記のページなどで解説されていますので、
この辺りを参考にしていただければと思います。
https://kinsta.com/jp/blog/downgrade-wordpress/
PHP に関しても下記ページで解説されています。
使用しているレンタルサーバーの会社にダウングレード方法を問い合わせてみても良いと思います。
https://ipodtouching.info/?p=18909
具体的な解決方法が提示できなくて申し訳ないですが、
まずは全て最新のバージョンに変えてみる、最近更新されていないテーマやプラグインを利用しているのであれば別のものに変えてみる、
それでもダメなら、一旦古いバージョンの PHP やワードプレスに戻し、それから悪影響のある要因を特定していくのが良いと思います。