WordPressでテーマをカスタマイズするときは、子テーマを使おう

WordPress

子テーマとは?なぜ使うの?

子テーマとは、いつも使用しているテーマの機能を受け継ぎつつ、新しい機能を定義したり、処理を上書きできるWordPressのテーマ機能です。

何故、わざわざもう1つテーマを用意するかといいますと、いつも使っているテーマをカスタマイズしている場合、テーマのアップデートによって上書きされ消えてしまうことがあります。
そのため、直接カスタマイズするのではなく、別のファイルを編集することで、アップデートとカスタマイズを行う際の悩みごとを減らすことができます。

親にしかデータが無い場合は親を、子にデータがある場合は子を使うことになるので、変更したいものだけ書くと良いです。



子テーマの作り方

テーマディレクトリの作成

子テーマは「wp-content/themes」の下に作成したいので、FTPでアップロードしてください。

今回は、「twentysixteen」の子テーマを作るので、「twentysixteen-child」というディレクトリを作りました。
子テーマディレクトリの最後に「-child」を付けることが推奨されていますし、分かりやすいのでこのように名付けましょう。
このとき名前にスペースが含まれると、エラーが発生するのでご注意ください。

このディレクトリに「style.css」と「function.php」を作成します。

style.cssの作成

このテーマは子テーマだよ、という宣言をするための設定を入力します。
最低限下記の「Theme Name」「Template」の宣言があれば動作しますが、もっと細かく書く場合は、親テーマからコピーして編集する方が簡単です。

/*
Theme Name: Twenty Sixteen Child
Template:     twentysixteen
*/

function.phpの作成

こちらは必須ではないのですが、親テーマのスタイルシートも使用したいので、下記コードを入力してファイルを作成します。
ちなみに、このファイルは親のfunction.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' );

}

これで子テーマの用意ができました。

子テーマを使ってみよう

子テーマの有効化

child_themes1
[ 外観 ] -> [ テーマ ] から「Twenty Sixteen Child」を有効化しましょう。
カーソルを上に載せるとボタンが表示されます。

有効化すると、子テーマを使った表示に変更されます。

style.cssにスタイルを追加してみよう

このままだと特に何も変更していないので、見た目上は変化がありませんので、
子テーマが適用されたことを目で見たいので、h1タグが赤色になるスタイルを追加してみました。
[ 外観 ] -> [ テーマの編集 ] から編集することができます。

/*
Theme Name: Twenty Sixteen Child
Template:     twentysixteen
*/
h1{
 color: red;
}

child_themes3
投稿詳細ページのタイトルが赤くなりました!
このようにスタイルを追加、更新するだけで適用され、親テーマのアップデートでcssが更新されても消されてしまうことはありません。

これでテンプレートのアップデートにおびえずに、カスタマイズができますね。