WordPress 子テーマの作り方

子テーマとは

WordPressの既存のテーマを変更する方法として、子テーマを作成してカスタマイズ塗る方法が推奨されています。
子テーマとは、親テーマと呼ばれる既存のテーマの機能とスタイルを継承したテーマです。

子テーマの利点

既存のテーマを直接変更した場合、そのテーマがアップデートされると変更が失われてしまいます。子テーマを使用すればテーマの変更は確実に保持されます。
子テーマを使用することで開発時間を短縮できます。

子テーマの作り方

子テーマは、少なくとも 1つのディレクトリ(子テーマディレクトリ)と、2つのファイル(style.css と functions.php) から構成されます。以下を作成する必要があります。

  • 子テーマディレクトリ
  • style.css
  • functions.php

子テーマディレクトリをwp-content/themes ディレクトリ下に作成します。

スタイルシート (style.css) の作成です。

スタイルシートは次の スタイルシートヘッダ で始める必要があります。最低限以下の2行が必要です。

/*
Theme Name: Twenty Fifteen Child
Template: twentyfifteen
*/

Theme Name行は、この例ではTwenty Fifteen Childですが、作成する子テーマのディレクトリはtwentyfifteen-childのように空白を含めないでください。
Template行は、親テーマのディレクトリ名を指します。この例では親テーマが Twenty Fifteen テーマですので、Template は twentyfifteen です。別のテーマが親テーマの場合、該当のディレクトリ名を指定してください。

functions.phpを作成します。

必須の子テーマファイルは style.css のみですが、スタイルを正しくキューに入れるには functions.php が必要です。

親テーマと子テーマのスタイルシートをキューに入れます。以前は @import: を使用して親テーマのスタイルシートをインポートしていましたが、これはもはや良い方法ではありませんので注意してください。親テーマのスタイルシートをキューに入れる正しい方法は、子テーマの functions.php で wp_enqueue_script()を使用する方法です。したがって子テーマには functions.php を作成する必要があります。子テーマの functions.php の最初の行は、PHP の開始タグ (<?php) で始め、続けて親テーマと子テーマのスタイルシートをキューに入れます。以下の例は、親テーマが 1つの style.css ファイルを使用してすべての CSS を保持している場合にのみ動作します。テーマが複数の .css ファイルを持つ場合(たとえば、ie.css、style.css、main.css) すべての親テーマの依存関係を管理する必要があります。依存関係に ‘parent-style’ を設定すると子テーマのスタイルシートは親テーマのあとで読み込まれます。

<?php

add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );

}

これで子テーマを有効化する準備ができました。サイトの管理画面にログインし、管理画面 > 外観 > テーマに移動してください。子テーマが表示され、有効化できる状態になっています。

テンプレートファイルについて

スタイルシート以外を変更したい場合も、子テーマは親テーマのすべてのファイルを上書きできます。単純に同じ名前のファイルを子テーマディレクトリに置くことで、サイトがロードされると親テーマディレクトリ内の同名のファイルは上書きされます。たとえば、サイトヘッダーの PHP コードを変更するには、子テーマディレクトリに header.php を置けば、親テーマの header.php の代わりにそのファイルが使用されます。

親テーマに存在しないファイルでも、子テーマに含められます。たとえば、特定のページ用のテンプレートやカテゴリーアーカイブ用のテンプレートなど、親テーマに存在するものよりも特殊なテンプレートの場合です。