Child Theme:子テーマ

公開日:2017年10月28日 / 最終更新日:2018年01月06日
本ブログは、WordPress をコアにしてデザインとして ThemeZee 社が提供している「Wellington」を採用しています。変更しなくても素晴らしいデザインなのですが、やっぱり自分好みに変更したいと考えるわけです。ちょこちょこと変更するくらいなら、スクラッチから作成しても良いのでしょうけど・・・そこまで時間もないし。

本ブログでは、提供されているテーマに対する変更は「子テーマ」を作成して修正を実施することが推奨されています。当然ですが、本ブログもその推奨をしっかり守って実践しています。

子テーマとは

「子テーマ – WordPress Codex 日本語版」によれば・・・

子テーマは、親テーマと呼ばれる別のテーマの機能とスタイルを継承したテーマです。既存のテーマを変更する方法として、子テーマが推奨されています。出典:「子テーマ – WordPress Codex 日本語版」より

即ち、本ブログでは親テーマである「Wellington」の機能とスタイルを継承した「子テーマ」ということになります。更に「子テーマ」を利用するメリットは、以下の通りです。

  • テーマを直接変更した場合、そのテーマがアップデートされると変更が失われるかもしれません。子テーマを使用すればテーマの変更は確実に保持されます。
  • 子テーマを使用することで開発時間を短縮できます。
  • 子テーマの使用することでWordPressのテーマの開発を良い形で学べます。

出典:「子テーマ – WordPress Codex 日本語版」より

「子テーマ」の作り方の基本

「子テーマ」は、最低限、子テーマディレクトリと、子テーマディレクトリ内に 2 つのファイル(style.css と functions.php))で構成します。本ブログの場合、子テーマディレクトリとして「wellington-child」を設定し、style.css と functions.php というファイルを置くだけです。

本ブログにおける style.css と functions.php の初期内容を掲載しておきます。先ずは、style.css より。

/*
Theme Name:   Wellington Child
Theme URI:    https://themezee.com/themes/wellington/
Description:  Wellington Child Theme
Author:       ThemeZee as the Original
Author URI:   https://themezee.com/
Template:     wellington
Version:      1.0
*/

注意すべき点は・・・

以前は「@import:」を使用して親テーマのスタイルシートをインポートしていましたが、これはもはや良い方法ではありませんので注意してください。親テーマのスタイルシートをキューに入れる正しい方法は、子テーマの functions.php で「wp_enqueue_script()」を使用する方法です。出典:「子テーマ – WordPress Codex 日本語版」より

上記からもわかる通り、もう一つの重要なファイル、functions.php のコードを示しておきます。

<?php
/*---------------------------------------
Style を @import を利用せずに読み込む
参考サイト:http://delaymania.com/201504/wordpress/wordpress-child-css-import/
-----------------------------------------*/
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
}

上記のファイルに、自分のコードをどんどん書き加えていけば、親テーマの基本を継承しながら、自分流の「子テーマ」を構築できるようになるはずです。

「子テーマ」を更に進化させる!?

「子テーマ」ディレクトリには、上記の style.css と functions.php ファイル以外にも header.php、footer.php、更には single.php 等も配置することができる・・・ということを学びました!

style.css や functions.php だけではなく、header.php や footer.php や single.php もあると便利だと思います。(中略)header.php、footer.php、single.php は丸々コピーするだけです。 親テーマより子テーマの方が優先されて丸々上書きされます。出典:「WordPress の子テーマの作り方〜header.php や footer.php や single.php もあると便利」より

なるほど!これを知れば色々と変更を掛けることができそうです。本ブログでも上記を参考に header.php と footer.php に修正を掛けています。

header.php は、日本語のウェブフォントを利用するためのコード、footer.php は、コピーライトの行を挿入するためにちょっとした変更を掛けています。

hearder.php を修正する

修正前の親テーマの header.php を以下の通りです。

<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="profile" href="http://gmpg.org/xfn/11">
<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">
<?php wp_head(); ?>
</head>

この親テーマの header.php に 日本語の Google Web Font を適用するためのコードを挿入しています。 下記のコードの下から 3 行目が「子テーマ」特有のコードです。

<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="profile" href="http://gmpg.org/xfn/11">
<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">
<link rel='stylesheet' id='noto-sans-ja-site-css' href='//fonts.googleapis.com/earlyaccess/notosansjp.css' type='text/css' media='all' />
<?php wp_head(); ?>
</head>

上記を挿入することで、ブログの全てのページに新しいフォントが利用できるようになり、日本語を美して見せる工夫ができるようになります(自己満足!)。

footer.php を修正する

footer.php 部分では、オリジナルのコピーライト行を挿入したくて、以下の親コードを利用しています。

<div id="footer-text" class="site-info">
<?php do_action( 'wellington_footer_text' ); ?>
</div><!-- .site-info -->

上記から「<div class=”site-info”> ~ </div><!– .site-info –>」の間のタグ部分(「~」の部分)を書き換えれば良い!そこで、以下のようなコードに書き換えました。

<div id="footer-text" class="site-info">
Copyright &copy; 2017-<?php echo date("Y"); a href="<?php echo home_url( '/' ); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?> </a> by Zero Cool. All Rights Reserved.
<?php do_action( 'wellington_footer_text' ); ?>
</div><!-- .site-info -->