WordPressのプラグイン処理
WordPressのプラグイン処理は結構分かりやすかったりする。
まず、プラグイン検出。
これは該当ディレクトリに対するファイルサーチ。
admin-functions.phpのget_pluginsから抜粋。
[php num=1]// Files in wp-content/plugins directory
$plugins_dir = @ dir($plugin_root);
if ($plugins_dir) {
while *1 !== false) {
if (preg_match('|^.+$|', $file))
continue;
if (is_dir($plugin_root.'/'.$file)) {
$plugins_subdir = @ dir($plugin_root.'/'.$file);
if ($plugins_subdir) {
while *2 !== false) {
if (preg_match('|^.+$|', $subfile))
continue;
if (preg_match('|.php$|', $subfile))
$plugin_files = "$file/$subfile";
}
}
} else {
if (preg_match('|.php$|', $file))
$plugin_files = $file;
}
}
}[/php]ここで抽出されたファイル群に対し、preg_matchによって、(コメントとして記述されている)プラグイン属性が抽出される(get_plugin_data)。
管理画面からの適用、不適用設定はDBに保持される。
また、各プラグイン内で実行されるadd_action により、タグ([アクション名称])と関連付けさせられ、適用の設定がなされたもののみ、do_action で実行される。
別途プラグイン処理を実装させる場合参考になるのかも。