WordPress をカスタマイズしたい場合など、WordPress の全ファイルの中から 関数名やクラス名など…特定のキーワードを含むファイルを検索・抽出したい場合に、WordPress インストールディレクトリをすべてダウンロードすると…膨大な時間がかかります。
そこで、サーバー上に簡単な PHP プログラムをアップロードして実行することで、目的の関数名やクラス名が どのディレクトリのどのファイルに記述されているか…を検索・抽出できるサンプルプログラムをご紹介いたします。
目次
WordPress のファイル一覧を取得する
WordPress 内のファイル一覧を取得するには「WordPress にアップロードした画像ファイルがサーバー内のどこにあるのか?検索する PHP プログラム(サンプル)」でご紹介した通り、以下の PHP プログラムで取得することが可能です。
<?php
getDir("../wp-content/");
function getDir($strDir){
$aryDir = scandir($strDir);
for ($i = 0; $i <= count($aryDir) - 1; $i++){
if ($aryDir[$i] == "." || $aryDir[$i] == ".."){
//処理しない
} else {
if (is_dir($strDir . $aryDir[$i])){
//再帰検索する
getDir($strDir . $aryDir[$i] . "/");
} else {
//ファイルの場合
if ($aryDir[$i] == "hogehoge.png"){
echo $strDir;
}
}
}
}
}
?>
ファイルを開いてキーワード検索する
18行目からのファイル名を検索している部分を書き換えて、ファイルを file_get_contents 関数で開き、その中に検索・抽出したいキーワード “hogehoge” があるか否かを mb_strpos 関数で取得し、キーワードがある場合には ディレクトリ名とファイル名を出力表示するためには、18~20行目をこのように書き換えます…
$strContents = file_get_contents($strDir . $aryDir[$i]);
if (mb_strpos($strContents, "hogehoge", 0, "UTF-8") !== FALSE){
echo $strDir . $aryDir[$i] . "<br>";
}
拡張子を絞り込む
すべてのファイルを検索するとサーバーに負荷がかかるので、特定の拡張子 例えば “*.php” のみ検索するように条件式を追加します…
if (strtolower(mb_substr($aryDir[$i], -4, 4, "UTF-8")) == ".php"){
$strContents = file_get_contents($strDir . $aryDir[$i]);
if (mb_strpos($strContents, "hogehoge", 0, "UTF-8") !== FALSE){
echo $strDir . $aryDir[$i] . "<br>";
}
}
まとめると、こうなります…
<?php
getDir("../wp-content/");
function getDir($strDir){
$aryDir= scandir($strDir);
for ($i = 0; $i <= count($aryDir) - 1; $i++){
if ($aryDir[$i] == "." || $aryDir[$i] == ".."){
//処理しない
} else {
if (is_dir($strDir . $aryDir[$i])){
//再帰検索する
getDir($strDir . $aryDir[$i] . "/");
} else {
//ファイルの場合
if (mb_substr($aryDir[$i], -4, 4, "UTF-8") == ".php"){
$strContents = file_get_contents($strDir . $aryDir[$i]);
if (mb_strpos($strContents, "hogehoge", 0, "UTF-8") !== FALSE){
echo $strDir . $aryDir[$i] . "<br>";
}
}
}
}
}
}
?>
この PHP プログラムをレンタルサーバーにアップロードし実行することで、どんな WordPress テーマを使おうが、どんなプラグインをインストールしようが あなたがお使いの WordPress の中のどのファイルにどんなキーワードが使われているのか…を簡単に検索することが可能になります!