※注意※2015年2月17日追記
この投稿の作り方で最低限の子テーマを問題なく作ることができますが、スタイル(CSS)を正しくキューに入れる(HTML のヘッダーで読み込む)ことができない、少し古いやり方です。
本投稿の後日そのことに気が付き、次の投稿で修正しました。
子テーマを作るのに必要なことまとめ
- テーマディレクトリを作成する。
- style.css ファイルを作成する。
- style.css 冒頭のコメントで、Theme Name: と、Template: を記述する。
- 親テーマの style.css をインポート(@import)する。
実際の具体的な作成例
- 子テーマ名 oki2a24.com, Twenty Fifteen Child
- 子テーマディレクトリ名 oki2a24com-twentyfifteen-child
- 親テーマは Twenty Fifteen
以上の条件で、わたくしたちのサイト用に最低限の子テーマを作成いたします。
# テーマのディレクトリを作成 cd wp-content/themes/ mkdir oki2a24com-twentyfifteen-child cd oki2a24com-twentyfifteen-child # style.css を作成 vim style.css
style.css への最低限の記述内容として、次を書きました。
/* Theme Name: oki2a24.com, Twenty Fifteen Child Theme URI: https://oki2a24.com/ Description: Twenty Fifteen テーマを基にした子テーマです。 Author: oki2a24.com Author URI: https://oki2a24.com/ Template: twentyfifteen Version: 1.0 */ @import url("../twentyfifteen/style.css");
簡単ですわね♪以上で、子テーマの完成ですの。
あとは、子テーマディレクトリの中で追加したい関数や、上書きしたいデザインを書いていくだけですの♪
もうすこし踏み込んでいつもテーマに追加する機能を書き足します
more タグで URL 末端に付く #more-xxxx を削除いたします。以前も行った次の投稿の内容をそのまま反映するだけですわ♪
まず子テーマディレクトリの中に functions.php を作成します。
vim functions.php
実際に書くコードですわ♪
<?php /** * more タグで URL 末端に付く #more-xxxx を削除します。 */ function remove_more_link_scroll( $link ) { $link = preg_replace( '|#more-[0-9]+|', '', $link ); return $link; } /** * コンテンツの more リンククリック時に処理を追加します。 */ add_filter( 'the_content_more_link', 'remove_more_link_scroll' );
以上で、子テーマを作る作業が終わりました♪
テーマの反映方法
管理画面の「テーマ」ページへ行きますと、style.css 冒頭のコメントに書きました Theme Name: に記述しました名前で新しくテーマが追加されます。
これの「ライブプレビュー」で様子を確認したり、「有効化」で実際にテーマを切り替えることができますの。
親テーマには変更を加えずに子テーマを作って編集していくメリット
- 親テーマが更新されても、その変更が子テーマに影響を及ぼさない。
- よって、親テーマが更新されても子テーマをメンテナンスする必要がない。
ですの♪いままで、WordPress 本体のアップデートがあると時折 Twenty Fourteen などの公式テーマもアップデートされています。テーマの更新は単純にファイルの上書き(だったと思います)ですのでせっかくの変更点が上書きされてしまいます。
テーマのアップデートの度に以前行った修正をもう一度施すのは大変ですの><。そもそも、どこに何を書いたのか、覚えていないと予想しますわ。
おわりに
Twenty Fifteen は本家や他のさまざまな情報を拝見いたしますと、
- 日本語のフォントが適用されていない。
- ヘッダー画像が縦長で左カラムに配置される。
といった点が気になりました。これらをクリアした上で、Twenty Fifteen をベースとした子テーマに変更するかどうか、決めたいと思いますの。
以上です。