WordPressではfunctions.phpという機能を司るファイルがありまして、機能を足したり引いたりしたいときにこれを編集するんですが、いろいろやってるうちにソースコードがごちゃついてくるんですよ。
そんなときのためにfunctions.phpに別のファイルをインクルードする方法をご紹介します。
functions.phpに別のファイルをインクルード
functions.phpに別のファイルをインクルードさせるための書き方ですが、2パターン見つけましたのでそれぞれ紹介しますね。
includeなんちゃら
まず1パターン目がこちら。下記のソースをfunctions.phpに記述します。
include( get_template_directory().'temp/functions-include.php' );
上記の「functions-include.php」というのがインクルードするファイル名なので、このファイル名を好きなように書き換えて、同じ名前のファイルを作成してください。
テーマフォルダ内に「temp」というフォルダを作りそこの中に「functions-include.php」というファイルを入れて、それをfunctions.phpにインクルードさせる場合の書き方ですのでそのあたりは調整してください。
フォルダに入れずにfunctions.phpと同じ階層に置いたファイルを読み込むのであれば上記の記述から「temp」を削除すればおっけーです。
あとは作成したphpファイル(ここではfunctions-include.php)にインクルードしたい内容を書いたら完成です。
require_once locate_templateなんちゃら
2パターン目がこちら。
require_once locate_template('temp/functions-include.php', true);
先ほどのものと書き方が違ってるだけでやってることは同じです。
下記のサイトにてこの書き方を知りました。require_onceは書かなくても良いそうですが、なぜこれを入れているのかということを下記のサイトでは詳しく解説しています。
ショートコードを増やしすぎたときなどに便利
これがどんなときに役に立つかというと、functions.phpに盛り込んだ内容がごちゃつきすぎて管理しにくくなったときです。
僕がこれを必要としたのは、複数人で管理するサイトを作っていて、ショートコードを多数作ったもののそのショートコードをPHPがあまり詳しくない人も触る可能性があるというケース。
functions.phpを下手にいじられるよりも、表に出したファイルをいじってもらった方が事故が少なくなるのでこの方法を使いました。
最後に
一人で管理しているサイトでもソースを整理したいときに便利なので、functions.phpをすっきり管理したい方はぜひお試しください。