オウンドメディア成功の秘訣は「ロジカル×エモーショナル」。必要な戦略と事例を大公開!【PLAN-B×LIG共催セミナー】
オウンドメディア成功の秘訣は「ロジカル×エモーショナル」。必要な戦略と事例を大公開!【PLAN-B×LIG共催セミナー】
2015.02.23

アップデートしても大丈夫!WordPressの子テーマでデザインのカスタマイズをする方法

エリカ

子テーマを理解する

実際子テーマには2つのファイルしかないはずですが、親テーマと同様の機能が提供されるようになります。これは、どういうことでしょうか。
簡単に説明しますと、WordPressがテーマファイルを参照する際「もしも、子テーマディレクトリに親テーマディレクトリに存在するファイルと同名のファイルがあれば、そちらを優先する」という処理を行っているためです。
つまり、親テーマをベースにカスタマイズしたい部分(ファイル)を、子テーマに複製し修正すれば、そちらが参照されるようになるということです。

例えば、「ヘッダーの一部分を変更したい」となれば、header.phpを子テーマにも作成し、それを修正すればいいということになります。
補足で説明しておきますと、必ずしも親テーマに同名のファイルがなければいけない訳ではありません。テーマによっては、用意されていないテンプレートもあるかと思います。その場合でも、子テーマに作成しておけば、そちらが読み込まれるようになります。

このあたりは、下記が参考になります。

テンプレートファイルが決定されるまでのフローが図解されていますので、テーマをカスタマイズする際は、一度読んでおくといいかもしれません。

しかしながら、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管理画面カスタマイズあれこれ10選

WordPressのカスタマイズでよく使う!初心者が覚えておきたい条件分岐タグ9選

フックって?WordPressのカスタマイズ方法を説明します!

WordPressカスタマイズの幅が劇的に広がる、フィルターフックとアクションフックの使い方

  • 1
  • 2