『これは欲しい』毎日使える!人気アプリ10選WordPressをカスタマイズする時、もっともコードを追加したり、編集したりするのはfunctions.phpになるのではないでしょうかネット上の情報でも便利な機能を追加、拡張するために「functions.phpにこのコードを書きます。」という説明によく出会うと思います。それで実現したいことができるので間違いではありません。そのままコードを追加していくと管理が難しくなります。あとがきfunctions.phpに関数を増やすと管理が難しくなる?WordPressの機能を拡張する方法には大きく分けて2つあります。プラグインを入れるfunctions.phpにコードを書くプラグイン2つを比べると分かると思いますが、1つ目のプラグインを使う方法はとても管理がしやすいです。管理しやすさには以下の点があげられます。フォルダで管理されプラグインが何を行なう物か明白に分かれているFTPソフトや管理画面からも追加、停止、削除が簡単フィルターフックが用意されたプラグインは元のコードはそのままで機能拡張できるfunctions.php対するfunctions.phpで機能を拡張する方法は、まだWordPressのカスタマイズを始めたばかりの方ですと、フォルダやファイルを分けずに機能を追加する関数も全てfunctions.phpに書いてしまっていることと思います。するとテンプレートファイルに比べてかなり肥大化したファイルになります。なると以下の問題ができ管理が難しくなります。しやすくfunctions.phpを書く方法を紹介します。管理方法functions.phpに書いていたコードは機能ごとにグループ分けして、別のphpファイルを作ります。新しいフォルダを作り、作ったphpファイルを入れ、functions.phpにはそのファイルを読み込むコードを記述します。すると以下のようなメリットがあります。ファイルを開かず新しく作成したフォルダを見ればどんな機能を追加したかわかる編集時、グループ分けしたファイルから修正箇所をすぐ探せる編集時、他のファイルを触らないので誤った入力が減るファイルごとにグループ分けすることで同じようなコードを書くミスをなくすオフにしたい機能はfuncutions.phpでインクルードした箇所をコメントアウトするだけ早速functions.phpを管理しやすい形にしていきましょう。手順は3ステップです。分解するファイルを入れる新しいフォルダ作成functions.phpを分解してphpファイルを作るfunctions.phpにファイルの読み込むコードを書く分解するファイルを入れる新しいフォルダ作成テーマフォルダにはテンプレートファイルが並んでいると思います。そこに一緒に関数を定義したファイルを並べるのは、見た目に関わるテンプレートファイルと区別が付きづらくなるので綺麗ではありません。別に新しいフォルダを作成しましょう。フォルダの名前は以下に私がベターだと思う候補を5つ上げておきます。theme「roots」を参考にlibraryの短縮したlibと名前を付けています。WordPressテーマの「TwentyFourteen」はincにカスタムヘッダーやウィジェットなどをまとめていますね。ここでは「lib」というフォルダを作成したと仮定して話を進めます。Themefunctions.phpを分解してphpファイルを作るfunctions.phpをグループに分解して、先ほど作成した「lib」フォルダに保存していきましょう。私の場合は、以下のファイルに分けています。init.phpテーマの初期設定に関わる関数(サムネイルやメニューが使えるようにするなど)cleanup.phpWordPressに表示されるバージョン情報やコメントFeedのリンクなどを削除する関数titles.phpカテゴリーやタグページごとに表示するタイトルを1つにまとめた関数breadcrumbs.phpパンくずリストを表示する関数scripts.phpCSSやJavascriptを表示する関数ads.php広告やAdsenseのコードをまとめた関数widgets.phpサイドバーやウィジェットに関する関数custom.php短い関数やファイルに分けるまでもない関数などのまとめ上記のようにfunctions.php内を全てファイルに分けてlibフォルダに保存し、functions.php内は空にしておきます。functions.phpにファイルの読み込むコードを書くfunctions.phpには分解したファイルを読み込むコードとそのファイルの説明を記述するだけにします。プラグインの管理画面のようにさっと見て何が定義されているか分かる状態です。以下は、functions.phpにファイルをインクルードしている例です。この記述は先ほどのフォルダ名の時と同じように「roots」を参考にしています。上記のコード、実はrequire_onceを書かなくてもWordPressに用意された関数locate_templateだけでファイルの読み込みができます。locate_templateまずは、require_onceとlocate_templateについて簡単な説明をします。チェックし、読み込みます。読み込まれている場合はそのファイルを読み込みません。locate_templatelocate_templateはテンプレートファイルがあるかチェックするWordPressの関数で、ファイルが見つかった場合はファイルのパス名を返します。見つからなかた場合は''を返します。locate_templateにはパラメータが3つあります。);locate_templateのパラメータ$template_namesファイルの格納された配列を指定$loadファイルの読み込みの指定、trueにするとファイルを読み込むます。デフォルトではfalse$require_oncerequire_onceで読み込む場合はtrue、requireで読み込む場合はfalseデフォルトではtruelocate_templateだけでfunctions.phpに読み込むコードは以下のように書くことができます。その他カスタマイズの関数なぜ、私がrequire_onceを書く方を採用しているか、それはコードを見た時に読み込んでいる必要なコードなんだな、というのが分かりやすいからです。locate_templateだけでは、その関数を知らないと何がtrueなのか理解するまでに時間がかかるかもしれません。PHPlocate_templateについては以下のサイトも参考にしてみてください。今村だけがよくわかるブログ追記:遅くならないのかとコメントをいただきました。require_onceはチェックする分、パフォーマンスに影響があるかもしれません。管理者がわかっているならinclude()またはrequire()を使った方がパフォーマンスは高いと思います。他にもファイルをインクルードする方法があります。TwentyFourteenでは以下の記述でファイルを読み込んでいます。'/lib/init.php';その他の方法は少し古い内容ですがこちらのブログが参考になります。ふじこのプログラミング奮闘記まとめテーマフォルダ内にfunctions.phpを分解したファイルを入れるフォルダを作るfunctions.phpをグループに分け分解したファイルを作るfunctions.phpにはインクルードする記述を書くあとがきこれでfunctions.phpが肥大化している方は少しは管理しやすくなるんじゃないでしょうか、参考になれば幸いです。いい管理方法があれば教えて下さい。表示に関するテンプレートファイルの管理方法についてはこちらを参考にしてください。/仕事ITマーケティングライフスタイル。