WordPress をカスタマイズしたい場合など、WordPress のフォルダ構成 / ディレクトリ構成を知りたい場合があります。
ネット検索すると それなりの情報は取得できますが、WordPress のフォルダ構成は、インストールしているプラグインや投稿した記事、アップロードした画像…など ユーザーごとに微妙に異なるものです。。
レンタルサーバー上の WordPress をすべてローカル PC にダウンロードすれば良いのですが…かなりのディスク容量になりそうなので、それも避けたい、、
そんなときに PHP で簡単にプログラムを作って画面表示させてしまおう!というサンプルプログラムをご紹介いたします。
目次
scandir 関数
scandir 関数に調べたいディレクトリを渡すと、そのディレクトリ配下のファイルやディレクトリなどの情報を配列変数で取得することができます。
では、WordPress の3つのディレクトリ “wp-admin” “wp-content” “wp-includes” のうち “wp-admin” ディレクトリ配下の情報を取得するサンプルプログラムは、こんな感じになります…
<?php
$arrDir = scandir("../wp-admin/");
for ($i = 0; $i <= max(array_keys($arrDir)); $i++){
echo $arrDir[$i] . "<br>";
}
?>
※サンプルプログラムの保存位置から見た WordPress インストールディレクトリは “../wp-admin/” 等になりますので、今回は “../wp-admin/” を指定していますが、用途に応じて任意に変更してご使用ください。
実際に iframe 内に表示させてみます。
1行目と2行目の “.” と “..” は特殊なディレクトリなので、対象から除外することにします。
また、3行目の “about.php”(他)は PHP プログラムファイルなので、対象から除外します。
14行目の “css” はディレクトリだと思われますので、次は “../wp-admin/css/” の配下にあるディレクトリ(他)を再度 scandir したい訳ですが…その取得結果の配下のディレクトリもさらに…と繰り返し処理しなければなりません。こうした処理を「再帰検索」と呼ぶのですが、今回は この「再帰検索」を使ったプログラムに対応していく必要があります。
再帰検索
上記のサンプルプログラムを “getDir” という関数にして、取得結果のディレクトリ内をさらに “getDir”(再帰検索)するサンプルプログラムは こんな感じになります…
<?php
getDir("../wp-admin/");
function getDir($strDir){
$arrDir = scandir($strDir);
for ($i = 0; $i <= max(array_keys($arrDir)); $i++){
if ($arrDir[$i] == "." || $arrDir[$i] == ".."){
//処理しない
} else {
if (is_dir($strDir . $arrDir[$i])){
//画面表示する
echo $strDir . $arrDir[$i] . "/<br>";
//再帰検索する
getDir($strDir . $arrDir[$i] . "/");
} else {
//ファイルなので処理しない
}
}
}
}
?>
実際に iframe 内に表示させてみます。
こんな風にして WordPress 内のディレクトリ構成を取得することができます。
この結果を使って近日中に「WordPress 内の特定のクラス定義がどのファイルで指定されているか…?」なども検索してみたいと思います。
[…] WordPress をインストールしたサーバー内のディレクトリ構成を画面表示する PHP プログラムはブログエントリ「WordPress のフォルダ構成を画面表示する PHP サンプルプログラム」で紹介しましたように、以下のようなプログラムになります。 […]