子テーマを理解する
実際子テーマには2つのファイルしかないはずですが、親テーマと同様の機能が提供されるようになります。これは、どういうことでしょうか。
簡単に説明しますと、WordPressがテーマファイルを参照する際「もしも、子テーマディレクトリに親テーマディレクトリに存在するファイルと同名のファイルがあれば、そちらを優先する」という処理を行っているためです。
つまり、親テーマをベースにカスタマイズしたい部分(ファイル)を、子テーマに複製し修正すれば、そちらが参照されるようになるということです。
例えば、「ヘッダーの一部分を変更したい」となれば、header.phpを子テーマにも作成し、それを修正すればいいということになります。
補足で説明しておきますと、必ずしも親テーマに同名のファイルがなければいけない訳ではありません。テーマによっては、用意されていないテンプレートもあるかと思います。その場合でも、子テーマに作成しておけば、そちらが読み込まれるようになります。
このあたりは、下記が参考になります。
http://wpdocs.sourceforge.jp/テンプレート階層
テンプレートファイルが決定されるまでのフローが図解されていますので、テーマをカスタマイズする際は、一度読んでおくといいかもしれません。
しかしながら、functions.phpについてこの限りにありません。
functions.phpについて
親テーマにfunctions.phpがあり、子テーマにもfunctions.phpありますね。
これまでの流れであれば、親テーマのfunctions.phpが読み込まれないようにも思えるかもしれませんが、functions.phpについては親テーマのもの、子テーマのものが両方読み込まれるようになります。
順番としては、子テーマのfunctions.phpが先になります。
これがどういうことかといいますと、例えば親テーマに下記のような記述があった場合。
if (!function_exists('theme_special_nav')) {
function theme_special_nav() {
// 何かする。
}
}
子テーマで、この関数を定義すれば、単純に親テーマの関数を置換するかのようなことができてしまいます(ただし、親テーマで上述のような書き方がされていることが前提になりますが)。
子テーマ内のファイルをインクルードしたい場合
通常のように、get_template_directory()をした場合は、親テーマのディレクトリを参照してしまいます。
子テーマ内のディレクトリを参照する場合は、下記のように get_stylesheet_directory() を利用するようにしましょう。
require_once( get_stylesheet_directory() . '/my_included_file.php' );
まとめ
いかがでしたでしょうか?
先人の知恵が詰まったテーマや素敵デザインのテーマ、便利な機能のテーマ、WordPressにはすばらしいテーマが本当にたくさんあります(もちろん、セキュリティの問題があるテーマもあったりしますが)。
テーマや子テーマが利用できる場面では積極的に利用して、開発の工数を短縮しましょう。
それでは!
【WordPressのカスタマイズを利用して効率良くサイト作り】
※ WordPressのテーマ選びで気をつけるべきポイントとオススメテーマ7選
※ WordPressのカスタマイズでよく使う!初心者が覚えておきたい条件分岐タグ9選
※ フックって?WordPressのカスタマイズ方法を説明します!
※ WordPressカスタマイズの幅が劇的に広がる、フィルターフックとアクションフックの使い方
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。