完成イメージ
長くなったfunctions.phpを、以下のように管理しやすく分割していきます。
テーマディレクトリ
├ functions.php // functionsフォルダ内のファイルを読み込む
└ functions/
├ admin.php // 管理画面のカスタマイズ
├ front.php // トップページのカスタマイズ
├ theme-hooks.php // テーマに依存するカスタマイズ
├ init.php // 初期設定やベースになる読み込み
└ plugins.php // プラグイン専用のカスタマイズ
このような工程で作業を進めていきます。
- functionsフォルダを作成
- 元のfunctions.phpのコードをそれぞれのファイルに分割する
- functions.phpから分割したファイルを読み込む
工程
1.functionsフォルダを作成
functions.phpと同じ階層にfunctionsフォルダを作成します。
この中に、分割したコードファイルを作成していきます。
2.元のfunctions.phpのコードをそれぞれのファイルに分割する
functionsフォルダ内に機能ごとにコードを分割していきます。
内容によっては以下の様に、さらに分割したファイルを作っても良いかもしれません。
pagination.php //ページネーション関連のカスタマイズ
plugin-a.php //プラグインAのためのカスタマイズ
plugin-b.php //プラグインBのためのカスタマイズ
slider.php //スライダー関連のカスタマイズ
thumbnail.php //サムネイル関連のカスタマイズ
※依存関係や読み込み順によっては不具合や機能しないものがあるかもしれません。元のfunctions.phpを確認しながら進めて下さい。
3.functions.phpから分割したファイルを読み込む
分割が完了したら、それらのファイルを読み込む記述をfunctions.phpに書いていきます。これで完了です。
<?php
/**
* セキュリティチェック
*
* このコードは、functions.php ファイルが WordPress の環境外から
* 直接アクセスされた場合に、スクリプトの実行を防ぎます。
*/
defined( 'ABSPATH' ) || exit;
// 各ファイルを配列に追加する
$function_files = [
'/functions/init.php', // 管理画面のカスタマイズ
'/functions/admin.php', // 管理画面のカスタマイズ
'/functions/theme-hooks.php', // テーマに依存するカスタマイズ
'/functions/front.php', // トップページのカスタマイズ
'/functions/plugins.php' // プラグイン専用のカスタマイズ
];
//ファイルを読み込む
foreach ($function_files as $file) {
if ((file_exists(__DIR__ . $file))) {
locate_template($file, true, true);
} else {
//ファイルが存在しないorパスが間違っている場合はエラーを返します
trigger_error("`$file`ファイルが見つかりません", E_USER_ERROR);
}
}