WordPressのサイトが表示される基本的な流れが確認できたところで、今度はWordPressではどんなファイルが読み込まれているのか見ながら、PHPについて確認してみます。
今回はこちらの記事を参考にしました。
今回はワードプレスの内部ではどんなファイルが読み込まれているのか見ながら、PHPについても確認してみます。
PHPとは、サーバサイドスクリプトとは
PHP(Hypertext Preprocessor)とはプログラミング言語(スクリプト言語)のひとつです。
WordPressではサーバサイドスクリプト、つまりサーバ側で実行されるスクリプト(プログラムの一種)として動作するそうです。
PHPが記述されたファイルは拡張子.phpとするそうです。
最初に読み込まれるファイルがphpファイル
WordPressで作られたWebサイトではまず最初にindex.php(ルートディレクトリにあるやつです)が読み込まれるそうです(エントリーポイント)。
index.phpの内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php /** * Front to the WordPress application. This file doesn't do anything, but loads * wp-blog-header.php which does and tells WordPress to load the theme. * * @package WordPress */ /** * Tells WordPress to load the WordPress theme and output it. * * @var bool */ define('WP_USE_THEMES', true); /** Loads the WordPress Environment and Template */ require( dirname( __FILE__ ) . '/wp-blog-header.php' ); |
- <?php ~ ?>
最初の1行目にある <?php は開始タグといって、phpファイルの最初に書いておくルールだそうです。 ?>は終了タグといってphpコードの終わりを示すのですが、ファイルがphpコードだけからなる場合は、むしろ省略するほうが推奨されています。
- /* ~ */
2行目からちらほら出てくる/* ~ */はコメントのことで、/*と*/で括ることでその部分をソースコードとして認識させないようにできます。
ちなみにコメントが1行なら // や # と書いてその後にコメントを書くこともできます。
- @packageとか@var
これはアノテーションと言うらしいのですが、ちょっと良く分かんないです。とりあえず便利なコメントだと思っておけば良いかなぁ。
- define(……
これは定数の定義をする関数だそうです。書式は
1 | define('定数名', 値,[case_insensitive = false]); |
case_insensitive(省略可能です)をtrueにすると定数名は小文字として扱われます(大文字と小文字を区別しなくなる)。わざわざこの引数使わずに定数名ちゃんと指定すれば良い気もしますが。。。何か使い方があるんでしょうか。
また、定数名の先頭には数字は使えません。
定数とは、1度入れたら中身を入れ替えられなくなる箱みたいなものです。円周率なんかは
1 | define('Pi', 3.14); |
と定義すると便利です。
- ;
PHPの命令文[コメントじゃないやつ、define(……とか,require(…… ]の末尾には;が付いていますが、これは命令文の最後に付けるルールです。C言語とかと一緒です。
- require(……
これも関数で、ソースコード内で別のphpファイルを読み込んで実行してくれます。書式は
1 | require('ファイル名'); |
- ‘
ちょくちょくシングルクォーテーション( ‘ ) が出てきますが、PHPでは文字列を扱う場合は、’ か “で括るようです。なのでこれらで括られた部分は文字列として認識されます。
‘ と ” の違いは「変数の展開」をするかどうか、だそうです。変数の展開とは「変数名が記述された場合にその変数の値に置き換える」という処理みたいです。
例えば値が「hello」である変数valueがあった場合
‘$value world!’ → $value world
“$value world” → hello world
となります。
PHPでは変数(定数とは違って値を変更できる)は、変数名の先頭に$を付けて書くルールみたいです。
index.phpは何をしているのか
18行に及ぶこのファイルが結局何をしていのかというと、wp-blog-header.phpを読み込んでいる、だけでした。wp-blog-header.phpが何をしているのかは、また次回確認していきます。
まとめ
- PHPソースコードの最初には開始タグを忘れない。
- /* ~ */ でコメント。
- @packageとかは良く分かんない。
- define()関数で定数の定義。
- 命令文末尾の;はC言語と一緒
- require()関数で外部phpファイルを読み込んで実行する。
- ‘で変数名も文字列として扱える。 “で変数名を自動的にその変数の値に置き換えてくれる。便利!