functions.phpが肥大化してきたら整理・分割しようと思った話

2025/05/15
functions.phpが肥大化してきたら整理・分割しようと思った話

気づけばfunctions.phpがカオスに

WordPressでオリジナルテーマを作っていると、だんだんfunctions.phpが膨れ上がってくる、という現象に悩まされるようになりました。
最初は軽い気持ちで数行書いただけのファイルだったのに、カスタム投稿タイプを追加したり、タクソノミーを登録したり、管理画面を少しカスタマイズしたり…といろいろ手を入れているうちに、気がつけば数百行に。

修正したい時に「あれ、どこだっけ?」問題

もちろん、それでも動作はするんですが、いざ修正や調整をしたくなったときに「あれ?あのコードどこに書いたっけ…?」と探す時間がどんどん増えていく。
これはちょっと効率悪いなと感じて、最近やっと整理に手をつけ始めました。

まずはグループ分け→その後ファイル分割

最初にやったのは、functions.phpの中身を「機能ごと」にグループ分けすること。
具体的には、以下のような単位でコメントをつけて区切りました。

  • カスタム投稿タイプの定義
  • タクソノミーの追加
  • 管理画面の変更
  • ウィジェットやメニューの登録
  • ショートコードの処理

これだけでもかなり見やすくなります。

そのうえで「これは独立してもよさそうだな」と思った部分から、順次ファイルを分割していきました。

require_once get_template_directory() . '/functions/custom-post-type.php';
require_once get_template_directory() . '/functions/admin.php';

見やすくなるだけで作業効率が全然違う

この方式だと、後から「投稿タイプを増やしたい」と思った時に、そのファイルだけを見れば済むので本当に便利です。

注意点としては以下の2つ。

  1. ファイルの文字コードは UTF-8(BOMなし)
  2. 各ファイルの先頭には必ず <?php を書く

これさえ守れば、特にトラブルもなく分割できます。

結論:整理するだけで精神的にもラクになる

最近は「このテーマ、どこを修正すればいいかすぐ分かるな〜」と感じるようになって、やっぱり整理してよかったなと実感しています。

人に渡す機会がある場合はもちろん、自分だけで管理するテーマでも、スッキリしているだけで精神的にラクです。