WordPressでブログやメディアを運営していると、テーマのデザインをカスタマイズしたくなりますよね。
実は、テーマをそのまま編集してしまうと、テーマをアップデートした時に編集した内容が上書きされてしまうという危険が潜んでいます。
この記事では、WordPressの子テーマを作成して安全にテーマを編集・カスタマイズする方法をご紹介しています。
テーマをそのまま編集するのは危険!
WordPressを使用している人は、公開されているテーマを利用してWebサイトを作成されている人がほとんどだと思います。
デザインを変更したり表示内容を編集したりするには、テーマの編集が必要になる場合があります。
しかし、テーマをそのまま編集してしまうと、テーマをアップデートした時にファイルが上書きされてしまって、カスタマイズした内容がすべて失われるという悲しい事態に陥ってしまいます。
それを防ぐためには、子テーマを作成してテーマをカスタマイズすることが大切です。
子テーマとは
子テーマとは、親テーマをベースにしながらも、カスタマイズしている部分は子テーマを使用できるというものです。
子テーマを使ってテーマを編集することによって、親テーマが更新された場合でもカスタマイズした内容が失われないため、安全にテーマを編集することができます。
「テーマを更新しなければいいじゃん!」という方もいるかもしれませんが、テーマのアップデートにはセキュリティ対策の重要なアップデートが含まれている場合があり、テーマを更新していないままにしておくと、セキュリティ面でのリスクが高まってしまいます。
WordPressを使用している場合は、WordPress自身のバージョンもそうですが、テーマやプラグインのバージョンもなるべく最新のものを使用するのが安心です。
子テーマの作り方
子テーマを作成する場合は、FTPクライアントソフトを使ってテーマのファイルを作成していきます。
まだFTPクライアントソフトを利用していない方は、下記の記事を参考にしてサーバー上のファイルを編集できるようにしましょう。
子テーマを作る手順は、下記の通りです。
- 子テーマのフォルダを作成する
- style.cssを作成する
- functions.phpを作成する
では、それぞれのステップについて詳しく解説してきます。
1. テーマのフォルダを作成する
子テーマを作るためには、まず子テーマのフォルダを作成しましょう。
wp-content > themes
の中にフォルダを新しく作成してください。名前は自由に設定して大丈夫です。
2. style.cssを作成する
子テーマのフォルダが作成できたら、次はstyle.css
ファイルを作成します。
style.css
の中には、下記のように情報を記述しておきます。
1 2 3 4 | /* * Theme Name: Child Theme Name * Template: Parent Theme */ |
「Theme Name」と「Template」にはそれぞれ下記の情報を記述しておきます。
- Theme Name
- 子テーマの名前を設定します。自由に決めてしまって問題ありません。
- Template
- 親テーマの名前を入力します。
3. functions.phpを作成する
次は、子テーマのファイルの中にfunctions.php
を新しく作成します。
functions.php
の中には、下記のように記述しておきます。
1 2 3 4 5 | <?php function fetch_parent_style() { wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' ); } add_action( 'wp_enqueue_scripts', 'fetch_parent_style' ); |
これで子テーマの作成が完了です!
子テーマを有効にする
子テーマの作成が完了したら、有効化して実際の表示を確認してみましょう。
WordPressの管理画面の「外観」→「テーマ」からテーマの設定画面を表示しましょう。
テーマの設定画面を開くと、新しく子テーマが表示されているので、それを有効化すれば子テーマの作成は完了です。
子テーマを使ったテーマのカスタマイズ方法
子テーマを作成した場合、WordPressでページを表示する時には親テーマと子テーマ両方のファイルを参照してページが表示されるようになります。
- 両方のファイルが参照される
- style.css
- functions.php
- 子テーマにファイルが存在すればそれを、無ければ親テーマのファイルが参照される
- index.php
- single.php
- search.php
- 404.php
- archive.php
- その他テンプレートファイル…