WordPressのコアファイルでPHP事始め2-WordPressで始めるWebの世界

Pocket

前回見てみたindex.phpはwp-blog-header.phpを呼び出していました。

少し理解できて、段々と面白くなってきました。

今回はそのwp-blog-header.phpを見ていきます。

wp-blog-header.phpもファイルを読み込んでいるだけ

 

  • if ( !isset($wp_did_header) ) { ……

ifは条件によって処理を分けるもので書式は

あるいは文が複数行に渡る場合は{}で括って

elseifやelseで条件をいくつもつくれて、条件の入れ子もできます。

!とisset

issetは指定した変数が空っぽ(NULL)ならTRUEを返します。

!は論理演算子の一つで否定を表します。つまり式がFALSEならTRUEを返します。

なので、if isset()…… は「指定した変数が空っぽでなければ……」という意味になりますが、 if !isset()……は「指定した変数が空っぽなら」という意味になります。

  • $wp_did_header = true;

これはwp_did_headerっていう変数にtrueを格納しています。

PHPではVisual BasicやCのような変数の宣言は必要ないそうです。なので変数に値を格納した段階で使えるようになります。

格納しようとしたときに変数があればあったで良いし、無ければ用意されるっていう感じですね。

  • require_once( dirname(__FILE__) . ‘wp_load.php’ );

色々出てきました。順に確認してみます。

require_onceは前回出てきたrequireとほぼ同じですが、同一ファイルは1回しか読み込まない点だけ違います。初期化など何度も実行されると困る処理なんかに使うみたいです。

dirnameは(directory nameってことでしょう)指定したパスから任意の階層の親ディレクトリのパスを返してくれるみたいです。書式は

levelはデフォルトで1ですが、つまり指定したパスの直上のディレクトリを返すってことです。例えば

dirname(‘C:\Users\Hoge’, 1)ならC:\Usersが返されます。

dirname(__FILE__)と書かなくても、__DIR__定数を使えば同じことができます。

dirname(‘C:\Users\Hoge’, 1)ならC:\Usersが返されます。

__FILE__はPHPの定義済み定数で、phpファイルのフルパスが格納されています。

良く見るとdirname(……と ‘wp-load.php’の間にドット(.)がありますが、これは結合演算子といって文字列の結合に使います。

ちなみに変数に代入につつ文字列をつなぎたい(変数に文字列を追加したい)場合は結合代入演算子(.=)を使えばオッケーです。

  • wp()

wp()関数を呼び出しています。どっかに定義されているんでしょう。

  • ABSPATHと WPINC

ファイルの最後でまた別のファイルを呼び出していますが

パスの指定部分でABSPATHとWPINCと書かれています。

これらは両方ともWordPressの定義済み定数みたいで、それぞれ

WordPressのインストールフォルダとワードプレスのインクルードディレクトリ名が格納されています。

まとめ

wp-blog-header.phpも基本的にはファイルを読み込んでいるだけでした。今日分かったことをまとめてみると

  • 条件分岐はif(……でC言語と同じ感じ。
  • 変数のNULLチェックはisset()関数で
  • !は「否定」の論理演算子
  • PHPで変数の宣言は不要。ついでに型指定も不要みたい。
  • 1度だけ読み込みたいファイルはrequire_once()で
  • dirname()は指定したパスから任意の階層のディレクトリを取得
  • __FILE__はphpファイルのフルパス
  • 文字列の結合はドット(.)で
  • ABSPATHはWordPressのインストールディレクトリでWPINCはWordPressのインクルードフォルダ(WordPressINClude)
Pocket

コメントを残す

メールアドレスが公開されることはありません。