今日は、WordPressはどのような仕組みで動いているのか?についてアウトプットします!
こんにちは。駆け出しコーダーのharuです。
2歳0歳の育児をしながら、22時〜2時にプログラミングを独学しています。2020.5.11~学習スタート2020.8.10~実務でコーディングしていますまだHTML/CSS(SCSS)/jQuery のよわよわです。これからもっと知識をつけていきたく、インプット・アウトプットを続けています。
普段から学習していてわかったことや、気付きをログに残しています。
※認識の間違っている箇所があれば、ご教授いただけるとうれしいです!
WordPressはどのような仕組みで動いているのか?
フォロワーのけんたさん(@MnlWill)がWordPressのアルゴリズムについて調べると良いと助言してくださいました!(感謝)
はるさんおはようございますー!🤩
WordPress自体のアルゴリズム(考え方です)とか勉強してみると面白いかもです!👌
実は割とGitの考え方に似てるんですよ✨
— けんた@webアプリ×データ基盤 (@kenta_freelance) September 10, 2020
WordPressがどんな動きをするものなのか?!興味が湧いたので調べてみることにしました!
昨日のブログでも、ほんの少しだけ触れております↓
WordPressの本質を知ることは大切
今日は、こちらの記事を主に参考にさせていただきました。
こちらによると、WordPressでテーマ作成をするには、本質を理解することが何より大切とあります。
本質を理解しないと、けっこう早い段階でつまづくし、より複雑で高度なWebサイトの構築など、まずできません。少なくとも、”なんとなーくテーマ作成はできるようになったけど、結局なんでこうなるの?”というモヤモヤした疑問をずーっと持ち続けることになります
(上記記事より抜粋)
WordPressを構成する4つの要素
WordPressは、
2. テーマ(テンプレート)
3. データ(MySQL)
4. プラグイン(拡張機能)
の4つの要素から成り立っています。それぞれの要素は「独立」して存在しています。
昨日のブログで触れましたが、テーマ作成のときはWordPress本体をダウンロードする必要があります。これがWordPress本体です。
WordPress本体のコードを変更することは許されません。変更するのはテーマとデータです。ここに、プラグインで便利な機能を追加します。
動的サイトのパーマリンク
WordPressの動きを理解するには、「動的サイトのパーマリンク」の概念が欠かせません。
パーマリンクとは
パーマリンクとは、webページ1つ1つに与えられているURLのことです。(https://happy-making.com/ このようなものです。)
わたしは、普段 https://happy-making.com/index/ が意味するのは、indexフォルダの中のindex.htmlという実体ページを指しているという認識でした。
実際に、静的ページだとこの解釈で間違いはありません。しかし、動的サイトのパーマリンクは解釈が異なります。
静的サイト:アクセスするたびに同じページが表示される
動的サイト:アクセスした状況に応じて違うページが表示される
動的サイトのパーマリンク
動的サイトのパーマリンクは、静的サイトとは認識が違います。
ここでいうURLは実体ファイルを指すものではないのです。
動的サイトのパーマリンクとページはそれぞれ独立していて、
2. MySQLからデータを取り出す
3. テンプレートに当てはめる
という流れでページが出来上がります。しかし、実体のファイルはありません。
なぐり書きですが図を描きました。
(みにくいな…)
WordPressの本質的な動きについて
WordPressの本質的な動きは、
2. URLによって表示するページが決定する
3. テンプレートが自動的に決まる
4. 必要なデータをMySQLから取得する
このような流れです。
補足します。
テンプレートが自動的に決まる
WordPressには、「テンプレート階層」と呼ばれるルールがあり、それにしたがってテンプレートが決定します。
こちらの図は、参考サイトのものが分かりやすすぎたので引用させていただきます(敬礼)
(画像引用:https://hijiriworld.com/web/wp-essence/)
表示するページが、アーカイブ・フロント・個別など用意されているものでなければ、自動的にindex.phpが使われます。(404エラーにはならない)
index.phpは昨日のブログで、基本的なテンプレートとして作ったものです。
WordPressで最低限必要なのは、このindex.phpです。必要最低限であり、最終手段として使われるテンプレートなのです。
必要なデータをMySQLから取得する
最後に、必要になるデータをMySQL(データベース)から取得します。
昨日の学習から…→WordPressでは、記事や画像などのコンテンツは全てMySQLに保管されているのでした。
このデータは、それぞれのページによって必要なデータが分けて格納されています。
たとえば、あるアーカイブページでは
・記事2
・記事3
が格納されいて、記事1の中にも「タイトル・本文・パーマリンク」などの細かいデータが入っています。
この格納されているデータ(オブジェクト)を、WordPressループ構文と呼ばれるものでループさせることで自動表示することができます。(ここはPHPなので後日学習したらアウトプットしたいと思います)
WordPressのメリット、デメリット
最後に、今日のアウトプット内容をふまえてWordPressのメリット・デメリットをまとめます。
WordPressのメリット
・ホームページの管理が楽
テーマがあれば、データ(記事や本文)を用意するだけで、テンプレートに沿ったwebページを簡単に表示することができます。
・簡単にデザインを変えられる
テーマを変えることで、簡単にデザインを一新することができます。テーマを1から作らなくても、有料・無料のテンプレートがたくさんあるので、専門知識がなくても簡単に変更が可能です。
以上が、今日の内容からのメリットでしょうか。
他にも、
・SEOにつよい(googleから推奨されている)
・豊富なプラグイン
・情報が多い
・カスタマイズが自由にできる
などが挙げられます。
WordPressのデメリット
・表示速度が遅い
今日勉強したように、WordPressは動的サイトです。データベースからデータを持ってきて、テンプレートに当てはめて… という流れが必要なので、必然的に表示速度が遅くなります。 (静的サイト比)
他にも、
・セキュリティが弱い(プラグインや設定で対策が必要)
・エラーが起きやすい(プラグインの互換性)
・サポートはない
などのデメリットも挙げられます。
あとがき
今回、けんたさんに助言いただいたことで、WordPressの仕組みについて詳しく知ることができました!
感謝いたします。動的サイトについても大変勉強になりました。
現役エンジニアけんたさんのTwitterはこちらです!
明日から、実際にテーマの作成を学習していきたいと思います(*・ᴗ・*)و
今日は以上です。
*ただいまもりけん塾で勉強しています!*
Thanks:師匠「もりけんさん」(@terrace_tec)
もりけんさんのHPはこちら