1.2 PHP と MySQL について - Yoshikikojima/hajimete-no-wordpress GitHub Wiki
WordPress は PHP というプログラミング言語、MySQL というデータベースによって作られています。オリジナルのデザインテーマや、複雑なサイトを制作するためには、PHP と MySQL についての知識も必要となります。
WordPress は「PHP」というプログラミング言語と、「MySQL」というデータベースによって構成されるソフトウェアです。どちらも Web サイトを作るのによく用いられています。
もちろん PHP と MySQL だけでは Web ページを表示することはできません。HTML という骨組みと、CSS という装飾、さらにアニメーションやインタラクティブな見た目を作るには JavaScript が必要です。
PHP(ピーエイチピー)は、主に HTML をサーバーサイドで動的に出力するために作られたプログラミング言語です。
「動的に出力する」というのは、ユーザーの要求に答えて、要求内容に合わせてページを出力するという意味になります。
例えば問い合わせフォームを送信して確認ページに遷移すると、入力した内容がページに表示されるかと思います。これはサーバーで一度入力した内容を受け取り、表示したい箇所に内容を埋め込んで表示した結果です。
WordPress は、管理画面で投稿された内容を PHP によってデータベースから呼び出し、テンプレートに埋め込んで表示しています。
「データベース」というのはサイトの表示に必要な「投稿」のデータや、管理画面にログインするのに必要な「ユーザー」のデータなどが整理されてしまわれている場所です。
例えば投稿を追加すると、投稿をしまう場所にタイトルや本文、日付などを格納します。ユーザーが該当の投稿ページを開くと、データベースから格納されたデータを取り出して表示します。
WordPress のデータベースには「MySQL」が使われています。
PHP は「サーバーサイドスクリプト」と呼ばれるプログラミング言語で、Web サーバーやデーターベースの上で動くプログラムです。逆に JavaScript は「クライアントサイドスクリプト」と呼ばれ、ユーザー側(ブラウザ上)で動くプログラムです。
サーバーサイドスクリプトは、ユーザーからのリクエストを受け取ってから、サーバー上で処理を行い、結果を Web ページとして表示します。
「リクエスト」というのはサーバーに対して命令をすることです。例えば Google で「chot.design」というキーワードを検索すると、サーバー側で対象となるサイトを探し出して、検索結果のページを表示してくれます。
例えば PHP で今日の日付を表示するときは、以下のようなコードを書きます。
<?php echo date('Y年 n月 j日'); ?>
すると実際には以下のような結果が表示されます。
2020年 2月 6日
echo
というのは「出力する」という処理を行ってくれます。
date()
というのは「日付を書式化する」という関数(いろいろな処理が行われるプログラムの塊のようなもの)で、上記のように表すと現在の年月日を取得してくれます。
上のコードによって、「現在の年月日を取得し、出力する」という処理が行われています。
PHP の文法を軽く説明します。
PHP は HTML の間に混ぜて書くことができます。なので PHP で作られたサイトのコードは一瞬 HTML と何が違うのかわからないかもしれません。よく見てみるとプログラムが記述された箇所は<?php ?>
というもので囲われているかと思います。
HTML ファイルは「index.html」のような名前がついていたかと思いますが、PHP が書かれたファイルは「index.php」にする必要があります。
PHP を記述する箇所は開始タグ<?php
と終了タグ?>
で加工というルールがあります。開始タグの後ろと、終了タグの前には、半角スペースを入れます。
半角スペースがないだけでプログラムが動かなくなってしまうことがあります。VSCode を使っていたら、空白スペースが見えるように設定できますので、必ず設定しておきましょう。
PHP と MySQL にはバージョンがあります。対応しているバージョンを使わなければ、WordPress は動かないので気をつけましょう。
2020 年 2 月現在の推奨環境は以下のとおりです。
- PHP バージョン 7.3 以上
- MySQL バージョン 5.6 以上
WordPress.com はこのバージョンについて気にする必要はありませんが、レンタルサーバーの場合は確認が必要です。古いバージョンが使われている場合はレンタルサーバーの設定から変更を行う必要があるかもしれません。