functions.php を分割する

この記事の所要時間: 約3分

WordPress 3.6 を使用。

ショートコードを足したりフィルターフックを書いたりしておくとどんどん大きくなる functions.php。

あまりにも肥大化してしまう場合は「カスタマイズ用 functions.php」「ショートコード用 functions.php」などファイルを分割して管理したい。

まずファイルを用途別に分割してから get_template_partlocate_template で分割したファイルを読み込むようにする。

以下は使用している functions.php をフィルターフック用の「filter_hooks.php」とショートコード用の「shortcodes.php」に分割し、テーマのディレクトリに「custom-functions」ディレクトリを作成、そこに分割後のファイルを配置する場合の例。

3.0 以降

functions.php(Themify のテーマ使用時は custom-functions.php)に以下のように記述する。

詳しくは WordPress Codex を参照。

ファイル指定の際「.php」の拡張子が不要なのが特徴。

2.7 以降

3.0 未満 2.7 以上の場合はこちら。(一応 3.0 以上でも使える)

functions.php(Themify のテーマ使用時は custom-functions.php)に以下のように記述する。

詳しくは WordPress Codex を参照。

この方法だと指定したファイルが無くてもエラーにならないし安心。

ちなみに locate_template の第一引数は array となっているから複数のファイルを一括で指定できそうなんだけど、実際は存在した最初のファイルだけが処理されるから、複数のファイルを読み込ませる場合は結局外側でループしなくちゃならない。