コピペで出来る!WordPress Twenty Twentyの子テーマ作成

公開 更新

ワードプレスには子テーマというシステムがあります。

テーマをカスタマイズするときにとても便利なものです。

…と言うより、子テーマを使わないと、カスタマイズは難しいです。

子テーマを使わないと、テーマアップデート時に大惨事になります

ワードプレスのテーマは、意外とアップデート頻度が高いです。

Twenty Twenty など、WordPress デフォルトテーマは、アップデートの頻度が高いです。

アップデートの頻度が高いことは、本来は喜ばしいことです。

常にテーマが改善されている、ということですからね。

しかし、テーマファイルを直接編集している場合、アップデートが来ると困ります。

テーマファイルを直接カスタマイズすると、アップデート時に、今までのカスタマイズが水泡に帰してしまいます。

テーマファイルを直接改変するようなカスタマイズをするなら、子テーマを作ってカスタマイズするようにしましょう。

子テーマ作りの準備

子テーマを作る!!と考えている人には馬耳東風かも知れませんが。

子テーマを作る作業には、FTPソフトが欠かせません。

次のようなFTPソフトを導入しておいて下さい。

以下、FTPソフトを使ってアップロードするくらいは朝飯前だという皆様向けに説明いたします。

子テーマを作る

子テーマの作り方は、子テーマ – WordPress Codex 日本語版 に詳しく書かれています。

私もこれを見て子テーマを作りました。しかし、詳しすぎてわかりにくいとはこの事かも知れません。結構、苦労しました。

Twenty Twenty をこれからカスタマイズする方のために、先輩としてなるべく分かりやすく説明します。

子テーマフォルダを作る

まずは、wp-content/themes/直下に子テーマのフォルダを作ります。テーマフォルダー名は何でもいいです。

テーマフォルダーには、取り敢えずは、次の2つのファイルのみを作ります。

  • style.css
  • functions.php

それぞれのファイルに書き込む内容は次のとおりです。

style.css

子テーマのstyle.css には、次の4行を書けば十分です。

/*
Template:(親テーマ名)
Theme Name:(子テーマ名)
*/

WordPressの公式テーマ Twenty Twenty の子テーマとして child-01を作るとすれば次のように書きます。

/*
Template: Twenty Twenty 
Theme Name: child-01
*/

functions.php

functions.php は、次のように書いて下さい。

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

子テーマフォルダルダをサーバーにアップロード

子テーマ内に style.css・functions.php を作ったら、 /wp-content/themes の直下に FTPソフトでサーバーにアップロードしましょう。

次に、WordPress管理画面→外観→テーマ で、子テーマ有効化します。

カスタマイズの概略

カスタマイズは全て子テーマフォルダ内のファイルで行います。

子テーマのstyle.css・functions.php は、親テーマのstyle.css・functions.php 末尾 に付加されます。

子テーマのstyle.css・functions.php には、親テーマに更かしたいことを書けば良いことになります。

style.css・functions.php 以外のファイルは、子テーマ内に親テーマと同名のファイルがあれば、子テーマのファイルが親テーマのファイルを上書きします。

親テーマでカスタマイズしたいファイルがあるなら、それをコピーして子テーマフォルダ内に貼り付け、テーマ内のコードを適宜変更するです。

カスタマイズ準備完了!!

これでカスタマイズ準備完了です。

次回から、少しずつカスタマイズしていきます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です