WordPressで子テーマを作成する動機と必要性と方法と子テーマを使用してどのようにカスタマイズをしていくか紹介!

はじめに

今回はWordPressで子テーマを作成する動機と必要性と方法について記事を書きます。

WordPressで子テーマを作成する動機

主にTCDテーマを使用しているWordPressのカスタマイズ案件で子テーマを作成することが必要となります。

WordPressで子テーマを作成する必要性

親テーマ(テーマ開発者が提供するテーマ)がアップデートされた場合、親テーマを更新することで新しい機能や修正が適用されます。しかし、直接親テーマをカスタマイズしてしまうと、アップデートの際にカスタマイズ内容が上書きされてしまいます。子テーマを使用すると、親テーマの変更を上書きせず、独自の変更を保持できます。

WordPressで子テーマを作成する方法

今回は例としてTCDテーマの「Vogue」テーマの子テーマを作成します。「Vogue」テーマの子テーマのフォルダ名は「vogue_child」とします。

ワードプレステーマTCD

フルスクリーンで世界観を表現し期待感を持続させるスプラッシュページを搭載スプラッシュページとは、ページを開く前にブランド…

子テーマを作成するために最低限必要なファイル類

子テーマのファイル「vogue_child」の中に「functions.php」と「style.css」が最低限必要なファイルとなります。

上記のファイル類を用意してサーバーにアップしていくのですが、まず子テーマのファイル類を追加する前のWordPressのファイル類の確認をしましょう。

子テーマ追加前のWordPressのファイル類

関係ないファイルは省略しています。

wp-content
– themes
– vogue_tcd051
– style.css

PR

子テーマに追加する「functions.php」と「style.css」を編集する

functions.phpとstyle.cssは正しく記述しないと子テーマをWordPressが認識してくれません。

特に「style.cssに記述するTemplateの部分」はテーマによって内容が変わるので注意して下さい。

以下でfunctions.phpとstyle.cssの内容を示します。

子テーマのfunctions.phpの内容

<?php
function theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css', array(), NULL );
    wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array('parent-style'), NULL );
}
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );

functions.phpに関しては上記をコピペで基本的にOKです。上記でできない方は下記のハンドル名を正しく指定する方法も試してみて下さい。

ハンドル名を正しく指定する方法

<?php
function theme_enqueue_styles() {
    wp_enqueue_style( 'vogue-style', get_template_directory_uri() . '/style.css', array(), NULL );
    wp_enqueue_style( 'vogue-style-child', get_stylesheet_directory_uri() . '/style.css', array('vogue-style'), NULL );
}
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );

上側のwp_enqueue_styleで親テーマのstyle.cssを読み込んでいます。親テーマの第一引数のハンドル名を正しく指定する必要があります。

下側のwp_enqueue_styleで子テーマのstyle.cssを読み込みます。子テーマのstyle.cssを読み込む際のハンドル名は任意となります。わかりやすいように親テーマのstyle.cssのハンドル名に「-child」をつけたものにしています。

wp_enqueue_styleの第一引数のハンドル名が「vogue-style」となる理由

WordPress側でVogueのテーマが適用されている状態で実際のページを確認し、検証ツールを開いてhtmlのソースコードの部分で「style.css」を検索して、テーマのstyle.cssを探してください。

テーマのstyle.cssとは?
「https://ドメイン名/wp-content/themes/親テーマ名(今回はvogue_tcd051)/style.css」で読み込まれているstyle.cssを指す。

下記画像はテーマのstyle.cssです。赤丸で囲んだid名の「-css」を抜いた部分がハンドル名になります。なのでハンドル名が「vogue-style」となります。

テーマのstyle.cssのidから「-css」をとった部分がハンドル名

子テーマのstyle.cssの内容

@charset "UTF-8";
/*
    Theme Name:Vogue child
    Template:vogue_tcd051
*/

Theme Nameに指定するのは任意のものになります。わかりやすいように「Vogue child」としています。

Templateには正しく指定する必要があります。親テーマのフォルダ名を指定します。今回親テーマのフォルダ名は「vogue_tcd051」です。

Templateに親テーマのフォルダ名を指定する。
上記の方法で正しく記述されたfunctions.phpとstyle.cssを子テーマのフォルダ「vogue_child」に格納し、サーバーの「wp-content/themes」内にアップロードします。するとWordPressの管理画面の「外観」の「テーマ」で「Vogue child」(子テーマのTheme Nameに指定した名前)が表示されるはずです。子テーマを「有効化」しましょう。
子テーマを「有効化」したときにデザインが変わってしまった場合は、親テーマをもう一度「有効化」して、WordPressの管理画面の「外観」の「カスタマイズ」の「追加CSS」を確認してください。もしかするとそこにcssが記載されているかもしれません。もし、親テーマの「追加CSS」にcssの記載があった場合は子テーマの「style.css」に移動させることでデザインが元通りになるはずです。また、親テーマの「追加CSS」はテーマのアップデートで消える可能性があるので、その点でも子テーマの「style.css」に移動させた方が良いです。

子テーマ追加後のWordPressのファイル類

追加したファイル類を赤色としています。

wp-content
– themes
– vogue_tcd051
– vogue_child
– style.css
– functions.php

子テーマを使用してどのようにカスタマイズしていくか

子テーマを作成しました。しかし子テーマのファイル類はfunctions.phpとstyle.cssのみなので、編集できるファイルはこの2つのファイルしかありません。では他のファイルをカスタマイズしたいときはどのようにすれば良いかを紹介しますが、難しくはありません。

トップページをカスタマイズしたいとき

親テーマのフォルダの中の「front-page.php」をコピーして作成した子テーマに貼り付けます。これでカスタマイズをする準備はOKです。子テーマに貼り付けた、「front-page.php」を編集してカスタマイズをしてください。

カスタマイズしたいファイルがあった場合、親テーマから子テーマにそのファイルをコピーしてからカスタマイズをする。

まとめ

親テーマを直接変更してしまうと(「外観」の「カスタマイズ」の「追加CSS」も含む)テーマをアップデートをしたときに変更内容が上書きされて消えてしまう。

子テーマには最低限functions.phpとstyle.cssが必要

子テーマのfunctions.phpで親テーマのstyle.cssを読み込むときのハンドル名を正しく指定する。

子テーマのstyle.cssのTemplateには親テーマのフォルダ名を正しく指定する

カスタマイズしたいファイルがあった場合、親テーマから子テーマにそのファイルをコピーしてからカスタマイズをする。

>お問い合わせはこちら

お問い合わせはこちら