wp-load.php

2009 年 5 月 30 日 土曜日  【 カテゴリー: wordpress構造解析 , wp_root


前回までの復習です。
※wordpress2.71で解析しています。

analyze04

wordpressは入り口となる「index.php」から「wp-blog-header.php」を読み込んでいました。
「wp-blog-header.php」内の処理は

①WPの処理をする為のクラスやライブラリを読み込んだり、各種設定をするなどのWP環境を主とする「wp-load.php」の読み込み
②WPのメイン処理を行う「wp() 」の実行
③テンプレートを選択・表示の処理を行う「template-load.php」の読み込み

でした。

今回は①の「wp-load.php」の処理をみていきます。

analyze05

①基本設定

最初に、定数「ABSPATH」とPHPエラー報告レベルの設定をしています。

define( 'ABSPATH', dirname(__FILE__) . '/' );

定数の値は、「dirname(__FILE__) . '/' 」です。「wp-load.php」のパス情報を定数に格納しています。これから「wordpress」の様々な基本ファイルを読み込んでいきますが、その時のパス指定に「ABSPATH」を用いています。つまり、「wp-load.php」ファイルのパスが基準になります。

error_reporting(E_ALL ^ E_NOTICE ^ E_USER_NOTICE);

次にphpエラー報告レベルの設定です。「E_ALL」なのでまずは全エラーが対象になっています。そのうち「 E_NOTICE」「E_USER_NOTICE」の2つのエラー処理が除外されています。

②「wp-config.php」存在有無による分岐

「wp-config.php」はwordpressをインストールするときにデータベース情報を書き込むなど基本情報を記述して作成したと思います。ウィザードでインストールした場合は自動で生成されます。
※ 「インストール」「インストール(ウィザード形式)

この「wp-config.php」が存在するかどうかにより大きく分岐していました。

③「wp-config.php」の読み込み

存在すれば「wp-config.php」を読み込み処理を続けていきます。「wp-config.php」からの処理の続きは次回以降説明します。存在しなければ④~⑥へと処理を経た後、phpのdie()関数により、ここで処理が終わります。

④インストールの為のパス設定

コメントで「Set a path for the link to the installer」と書かれています。この後説明するエラーメッセージにインストールへのリンクを書くんですが、そのリンク先のパス指定に使います。この「wp-load.php」は管理者パネル「wp-admin > admin.php」からも読まれています。

if (strpos($_SERVER['PHP_SELF'], 'wp-admin') !== false) $path = '';
else $path = 'wp-admin/';

urlに「wp-admin」を含むかどうかにより、ユーザぺージからのアクセスなのか、「管理パネル」からのアクセスなのか判断しています。

⑤wordpressの基本クラス、ライブラリを読み込み

この後、エラーメッセージを表示する為、wp_die()関数を利用しています。エラー表示して処理は終了するのですが、エラーを表示したりインストールするためのリンク先を指定するなどで処理が必要な為、とりあえずwordpressの基本クラスとライブラリを読み込んでます。

⑥エラーメッセージ表示

wp_die関数(※wp-include > functions.php) を実行してエラー表示を行います。この関数の最後にdie関数が実行されphp処理が終わります。

install_wizard02


にほんブログ村 IT技術ブログ Webサイト構築へ
にほんブログ村
【WEBサイト構築・プログラムブログ】
ランキング参加中!よろしければ「クリック」お願いします。
にほんブログ村 IT技術ブログ プログラム・プログラマへ
にほんブログ村
2009 年 5 月 30 日 土曜日  【 カテゴリー: wordpress構造解析 , wp_root

コメント / トラックバック 1 件

  1. サイト構築日記 » wp-config.php wordpress構造解析 wp_root より:

    [...] wp-load.php [...]

コメントをどうぞ

※管理者による確認後に表示されます。表示までしばらくお待ちください。