子テーマのつくり方

子テーマとは

あなたが Snow Monkey のデザインやレイアウトを変更したいと思ったとき、CSS の追加だけですむのであればカスタマイザーの「追加CSS機能」を使うことで簡単に CSS を追加することができます。

しかし、HTML 自体をカスタマイズしたかったり、PHP のコードを追加してテーマの挙動をカスタマイズしたい場合は子テーマをつくる必要があります。Snow Monkey を親テーマとして子テーマを用意すれば、子テーマから Snow Monkey のテンプレートを上書きしたり追加したりすることでカスタマイズを行うことができます。子テーマに Snow Monkey と同名のテンプレートがある場合はそれが使用され、無い場合は Snow Monkey のテンプレートが使用されます。

詳しくは下記をご参照ください。

子テーマのつくり方

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

まず、子テーマ用のテーマディレクトリを作成します。ここでは snow-monkey-child という名前で作成することとして進めます。

/themes/
├ /snow-monkey/
└ /snow-monkey-child/
    ├ style.css
    └ functions.php

style.css の作成

作成した snow-monkey-child ディレクトリの直下に style.css を作成します。この style.css で親テーマを Snow Monkey にするという宣言を行います。また、CSS を追加することもできます。

/**
 * Template: snow-monkey
 * Theme Name: Snow Monkey Child
 */

body {
  background-color: #ccc;
}

Template: snow-monkey が Snow Monkey を親として使用するという宣言、Theme Name: Snow Monkey child がこのテーマの名前は Snow Monkey Child です、という宣言になります。

その下に、例として背景を灰色にする CSS を追加しています。

CSS の読み込み(基本編)

子テーマの CSS を読み込ませるには、functions.php にコードの追加が必要です。ご使用の Snow Monkey のバージョンにより記述が異なりますのでご注意ください。

〜v0.6.1 の場合

add_action( 'wp_enqueue_scripts', function() {
	wp_enqueue_style(
		get_stylesheet() . '-child',
		get_stylesheet_uri(),
		[ get_stylesheet() ]
	);
} );

v0.6.2〜の場合

add_action( 'wp_enqueue_scripts', function() {
	wp_enqueue_style(
		get_stylesheet(),
		get_stylesheet_uri(),
		[ get_template() ]
	);
} );

CSS の読み込み(上級編)

Snow Monkey は CSS は SASS を、JS は ES6 JavaScript をコンパイルしてブラウザが読める CSS/JS を生成しています。子テーマで CSS や JS を追加する際、ブラウザに読み込ませるファイル自体を追加するのではなく、Snow Monkey のコンパイル前の SASS/JS を import してコンパイルし、単一の CSS/JS ファイルを生成する場合は下記のようにファイルの配置および記述を行うと簡単です(functions.php には特に読み込みに関する記述は必要ありません)。

/themes/
├ /snow-monkey/
└ /snow-monkey-child/
    ├ style.css
    ├ functions.php
    ├ /src
    │  ├ /css/style.scss
    │  └ /js/app.js
    └ /assets/
        ├ /css/style.min.css
        └ /js/app.min.js

/src/css/style.scss

@import '../../../snow-monkey/src/css/style';

/src/js/app.js

import '../../../snow-monkey/src/js/app.js';

コンパイルについてはお好みのライブラリ・設定で行って頂くのが良いと思いますが、特にこだわりがないのであれば、Snow Monkey は gulp で諸々の処理を行っているので Snow Monkey の gulpfile.js ご参照いただくとやりやすいかもしれません。

Snow Monkey

Snow Monkey は 100% GPL の WordPress テーマです。誰でも簡単・便利に使えるように、様々な機能を用意しました。

Snow Monkey オンラインコミュニティ

Snow Monkey をご購入いただいた方だけが入会できるコミュニティです。使い方や設定方法のサポート、今後のアップデートについてのディスカッション、動画配信等をおこなっています。