WordPressテーマをカスタマイズするとき、「親」テーマに直接書き込んでいませんか?「親」テーマに書き込んでいると、テーマが更 新されたとき、カスタマイズした内容が全て消えてしまいます。 WordPressのテーマをカスタマイズする前に子テーマを使いましょう。 WordPressを使い始めたばかりの方は「子テーマ、親テーマって何?」「なんで、テーマ自体を直接カスタマイズしたらいけないのか?」という疑問を持つ方もいると思います。
このページでは、Wordpressの「子テーマ」の仕組みと作り方を解説します。
目次
WordPressの子テーマとは?
既存のWordPressテーマを、「親テーマ」といいます。「子テーマ」とは、既存のWordPressテーマのカスタマイズ専用のテーマです。
テーマの機能とスタイルを継承したものが「子テーマ」です。
- 親テーマ:既存のWordpressテーマ
- 子テーマ:親テーマの、機能とスタイルを引き継ぎ編集するためのテーマ
「子テーマ」を使うメリット
WordPressテーマが更新されてもカスタム内容が消えない
「子テーマ」作りカスタマイズしておくと、WordPressテーマが更新されても上書きされても、カスタム内容が消えたり、上書きされる心配がありません。
WordPressの「親」テーマのファイルを直接カスタマイズしていると、テーマをアップデート(更新)したときな、カスタマイズした内容が全て消えてしまいます。
子テーマを作る3つの手順
WordPressで「子テーマ」は大まかには以下の流れで作成します。
- 子テーマのフォルダ、ファイルを作る
- 親テーマを継承するためのコードを書く
- 子テーマを確認、有効化する
public_html
├ドメイン
├wordpress
├wp-content
├themes
├twentyseventeen:親テーマ
├twentyseventeen_child:子テーマ
├functions.php
├style.css
├functions.php
子テーマのフォルダを作る
ワードプレスのデフォルト(初期)テーマ「twentyseventeen」を例に説明します。 まず、FTPソフトを使って、サーバー上のファイルを開きます。
子テーマ用のフォルダを作る
子テーマ用のフォルダを作ります。作成する場所は、既存のテーマと同じ階層 「/wp-content/themes 」です。
ファイル構成例
public_html
├ドメイン
├wordpress
├wp-content
├themes
├twentyseventeen:親テーマ
├twentyseventeen_child:子テーマ
├functions.php
├style.css
名前は自由に決めることができますが、わかりやすいよう「親テーマ名_child」としましょう。
子テーマに必要な2のファイルを作る
public_html
├ドメイン
├wordpress
├wp-content
├themes
├twentyseventeen:親テーマ
├twentyseventeen_child:子テーマ
├functions.php
├style.css
次に、作成した子テーマフォルダの中に以下の2つファイルを作成します。
- functions.php
- style.css
作成できたら、それぞれのファイルに書き込んでいきます。
style.cssの編集
style.cssファイルを開き、次のように編集します。
書式
/*
Theme Name:[小テーマの名前]
Template:[親テーマのフォルダ名]
*/
style.css記入例
/*
Theme Name: Twenty Seventeen Child
Template: twentyseventeen
*/
「Theme Name」の後ろが子テーマの名前です。「Template:」の後ろが親テーマのフォルダ名を入れます。 子テーマの名前は自由に決めて構わないので、「親テーマ名」+「child」としておくとわかりやすいでしょう。
ワードプレス管理画面の「外観」→「テーマ」のテーマ名=フォルダ名とは限りません。
例えば、WordPressのデフォルトテーマのひとつ「Twenty Seventeen」の場合、フォルダ名は「twentyseventeen」です。
親テーマのフォルダ名は一字一句間違えずに記入してください。これに誤りがあると、テーマとして認識されません。
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' );
wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array('parent-style')
);
}
?>
ライブプレビューで確認
WordPressの管理画面から「外観」➔「テーマ」を確認すると、追加した子テーマ「Twenty Seventeen Child」が確認できます。
もしもここで、子テーマが表示されていない場合、「style.css」の「親テーマのフォルダ名」の記述を確認してください。
ライブプレビューをクリックします。プレビューで実際にテーマを適用する前に正常に表示されているか、確かめることができます。
プレビュー画面を確認します。
子テーマを有効化する
プレビューで問題無いことを確認したら、「保存して有効化」をクリックします。 「保存しました。」と表示されればOKです。 なお、テーマの有効化は、「外観→テーマ」からもできます。 念のため、子テーマを有効にした後に再度、サイトの表示が問題無いか確認してください。以上で、子テーマの設定は完了です。
子テーマが反映されない場合は?
子テーマが表示されていない場合、まずは以下を確認してください。
子テーマフォルダに作成した、「style.css」の「Template:」項目の「親テーマのフォルダ名」が一字一句間違っていないか確認してください。
例えば「twentyseventeen」場合、記述するのは、「twentyseventeen」です。「Twenty Seventeen]では認識されません。
/*
Theme Name:[小テーマの名前]
Template:[親テーマのフォルダ名]
*/
コマンド操作での流れ
子テーマのターミナルからコマンド操作で行う手順も示しておきます。いわゆる「黑い画面」を使って操作する方法です。
1.ターミナルを開く
2.サーバーにssh接続
ssh [ホスト名]@[ユーザ名]
3.cdコマンドで「wp-content/themes/」フォルダに移動
cd wp-content/themes/
4.「twentyseventeen_child」フォルダを作成する
mkdir twentyseventeen_child
5.作成したフォルダに移動する。
cd twentyseventeen_child
6.テキストエディタviで「style.php」ファイルの中身を修正
vi style.php
7.テキストエディタviで「functions.php」ファイルの中身を修正
vi functions.php