【WordPress】子テーマを作るメリット・デメリットと作り方
WordPressのテーマには子テーマという仕様が存在します。
子テーマとは大本となる親テーマがあり、それに対する子テーマということです。
この子テーマとは何なのか、どんなメリットがあり、逆にどんなデメリットがあるのか、さらにどうやって子テーマを作るのか等、子テーマに関することを徹底的にご紹介したいと思います。
この記事の目次を表示
子テーマとは
WordPressの子テーマとは大本となるテーマ内のファイルを直接編集することなく、カスタマイズに必要なファイルを子テーマ内で編集可能にするためのWordPressの仕様です。
子テーマに対して、大本となるテーマのことを一般的に親テーマと表現します。
子テーマを作るメリット
子テーマを作るメリットは多くあります。
後ほどご紹介しますが、子テーマを作るデメリットは基本的に無いので配布されているテーマを採用する場合は積極的に取り入れていきましょう。
親テーマをアップデートすることが出来る
自作のオリジナルテーマで無く、配布されているテーマの場合、定期的なアップデートが発生します。
配布されている親テーマの中身を直接カスタマイズしてしまうと、アップデートした際に、リセットされてしまいます。
もしくは、新しく配布されたバージョンにアップデートすることが出来なくなってしまいます。
セキュリティ的に必須のアップデートだった場合、バージョンアップすれば、カスタマイズ内容がリセットされてしまうし、かといってアップデートしないまま放置してしまうとトラブルが発生してしまう恐れがあります。
凄く悩ましい判断をすることになる恐れがあります。
簡単にリセットが出来る
子テーマをカスタマイズ中に何かしらの不具合が発生した場合、子テーマを削除して親テーマに戻すことで比較的安全に初期状態に復元することが出来ます。
ただし、それはテーマ内の不具合だった場合のみで、データベースが絡む不具合の場合は子テーマを削除し、親テーマに戻しただけでは復元出来ない可能性もあります。
子テーマを作るデメリット
子テーマを作るデメリットは基本的にありません。
しかし、デメリットとまでは言えないですがいくつか注意点はあります。
親テーマに依存
子テーマを作る上で最も注意が必要なのが親テーマの設計、構築方法です。
親テーマの設計、構築方法によっては一般的な子テーマの作成方法ではレイアウトが崩れてしまったり、制約が出てくることが考えられます。
この辺りは採用する親テーマによるので、実際に子テーマを作ってみてどうなるかを確認してみないと分かりません。
親テーマのアップデートのよる不具合
子テーマを作成した段階では問題は無くても、親テーマがアップデートすることによって、子テーマのカスタマイズ内容との辻褄が合わなくなり、不具合を起こす可能性があります。
解説ブログでは子テーマを作成することで親テーマをアップデートしてもカスタマイズ内容が上書きされることは無いと書かれていますが、上書きされなくても親テーマ側で大幅な変更があった場合は、それに合わせて再度子テーマをカスタマイズし直す必要があります。
実際に親テーマがアップデートされてどうなるかを確認してみないと分かりません。
子テーマの作り方
子テーマを作ることによるメリットとデメリットが分かった所で、次に子テーマの作り方をご紹介します。
【手順1】子テーマディレクトリの作成
まずは子テーマのディレクトリを作成します。
子テーマのディレクトリ名はどんな名前にしても問題ありませんが、親テーマのディレクトリ名と関連付けると後々分かりやすいと思います。
例えば親テーマのディレクトリ名が「wp_theme」だった場合、子テーマのディレクトリ名は「wp_theme_child」のような名前にすると2つのテーマが関連していると判断しやすいですね。
wp-content/
└ themes/
├ wp_themes/ ← 親テーマ
└ wp_themes_child/ ← wp_themesの子テーマ
このようになります。
【手順2】style.cssの設定
続いて、「wp_themes_child」ディレクトリ内に「style.css」を作成します。
この「style.css」内には以下の内容を記述します。
/*
Theme Name: 子テーマ名
Template: 親テーマのディレクトリ名
*/
Theme Name:
は完全に任意の名前で大丈夫ですが、分かりやすくするために「wp themes child」等とするといいと思います。
そして、ここで重要なのがThemplate:
で指定する値です。
ここに指定するのは親テーマのディレクトリ名です。
例えば上で挙げたディレクトリの場合、ディレクトリ名が「wp_themes」なので、Template: wp_themes
と記述します。
よく子テーマの作り方を解説しているブログで親テーマ名を指定すると記載があり親テーマの「Theme Name」の値を指定するという解説がありますが、これは間違いです。
正しくは親テーマのディレクトリ名を指定する必要があります。
/*
Theme Name: Template: wp_themes
Template: wp_themes
*/
そしてこの「style.css」をサーバーの子テーマ内にアップロードします。
【手順3】functions.phpを作成
続いて、「wp_themes_child」ディレクトリ内に「functions.php」を作成します。
この「functions.php」内には以下の記述をします。
<?php
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' ); // 親テーマのstyle.cssを読み込む
wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array('parent-style') ); // 子テーマのstyle.cssを読み込む
}
?>
そしてこの「functions.php」をサーバーの子テーマ内にアップロードします。
【手順4】子テーマを有効にする
子テーマを作成する上で必要なファイルは「style.css」と「functions.php」だけです。
wp-content/
└ themes/
├ wp_themes/
└ wp_themes_child/
├ style.css
└ functions.php
ここまでの作業で設定が正しければ、管理画面上に子テーマとして認識されているはずです。
最後に「管理画面」→「外観」と進み、子テーマを有効にします。
これで子テーマの作成が完了です。
親テーマに依存することなく、カスタマイズをすることが可能になります。
子テーマのカスタマイズ
子テーマを使ってカスタマイズする場合、編集したいファイルを親テーマからダウロードして子テーマ内にアップロードします。
親テーマと子テーマは連動しており、子テーマ内に該当ファイルがあればそれを読み込み、無ければ親テーマ内のファイルを読み込みます。
例えば、「heaer.php」の内容を編集しようと思った場合、親テーマから「header.php」をダウンロードしてきて、カスタマイズ後に子テーマ内の同ディレクトリにアップします。
こうすることで親テーマ内の「header.php」では無く、子テーマ内の「header.php」を読み込むようになります。
wp-content/
└ themes/
├ wp_themes/
└ header.php ← このファイルは読み込まれない
└ wp_themes_child/
├ style.css
├ functions.php
└ header.php ← このファイルを読み込む
まとめ
いかがでしたか?
WordPressの子テーマのメリット、デメリットから子テーマの作り方までご紹介しました。
子テーマで構築する場合、慣れないうちは難しい印象があるかもしれませんが、一度作ってしまえばそのメリットは絶大です。
配布されているテーマを使用し、カスタマイズする場合は是非、子テーマを作ってカスタマイズするようにしましょう。