Secura Vita

Category: Works , WordPress
Works

wordpress:ダウンロードしたテーマは絶対カスタマイズしちゃダメ!カスタマイズは子テーマを使え!

wordpress:ダウンロードしたテーマは絶対カスタマイズしちゃダメ!カスタマイズは子テーマを使え!

wordrepssにはめちゃくちゃたくさんのテーマがあって、ブログ書いてる人の中には頻繁に変えてる人もいるかと思います。

テーマに関する注意なのですが、公式で配布されているテーマを直接カスタマイズするのは絶対ダメです!

wordrepssの利点にカスタマイズに自由度が高いというのがありますが、配布されてるテーマはやっちゃだめです。

趣味でやってる分には仕方ないかもしれませんし、自分が理解して気をつければいいのですが、以前仕事でそれをやってた人がいたのでなんだかなぁと思ってしましました。

なぜ公式で配布されているテーマを直接カスタマイズするのはダメなのか

この理由は唯一つ!

アップデートするとカスタマイズしたものが消えてしまうから

です。

配布されているテーマはよくアップデートされますが、カスタマイズをしてるとアップデートやっちゃダメなんです。

アップデートを行うと、一度そのテーマファイルを全部消して新しいファイルをダウンロードしてるみたいなんですよね。

例としてテーマ「Twenty Seventeen」にpage-test.phpというページ用のテンプレートを作成します。

テーマを直接カスタマイズするのはダメ

この状態でアップデートを行うと…

テーマを直接カスタマイズするのはダメ

消えてる!

更新日時も全てのファイルが変わってますよね。

なので

  • 公式で配布されているテーマは直接カスタマイズしない
  • カスタマイズした場合はアップデートを行わない

です。

カスタマイズしたい場合は子テーマを使え!

じゃカスタマイズできないの?と言われればそうではなくて、ちゃんと安全にカスタマイズする方法が用意されています。

それは子テーマを作成するという方法です。

子テーマは、親テーマと呼ばれる別のテーマの機能とスタイルを継承したテーマです。既存のテーマを変更する方法として、子テーマが推奨されています。

子テーマを作って有効にすると、子テーマ内にあるファイルはそれを、ない場合は親テーマのファイルを読み込むようになります。

作り方

ここではこのような仕様で子テーマを作っていきます。

  • 親テーマはTwenty Seventeen
  • 子テーマをTwenty Seventeen Childとする
  • カスタマイズはpage-test.phpを作成する

まずは子テーマ用ディレクトリ「twentyseventeen-child」を作成します。

このに子テーマのファイルを入れていきます。

子テーマに最低限必要なファイル

子テーマに最低限必要なファイルはstyle.cssfunctions.phpです。

style.cssにこう書くだけです。

/*
Theme Name: Twenty Seventeen Child
Template: twentyseventeen
*/

Theme Nameは子テーマの名前、Templateは親テーマのディレクトリ名です。

テーマ名ではないので間違えないように。

つぎにfunctions.phpで親テーマのスタイルシートを読み込ませます。

add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
	wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );

}

この状態で管理画面の外観を見てみるとこうなってると思うので、Twenty Seventeen Childを有効にしましょう。

wordpress子テーマの作成
子テーマのカスタマイズ

固定ページに「テスト(スラッグはtest)」というページを作り、ページ用テンプレートpage-test.phpを子テーマのディレクトリに入れてみます。

wordpress子テーマの作成

テストページアクセスするとちゃんと表示されました。

wordpress子テーマの作成

「これは子テーマ用テストページファイルです。」の文字が子テーマのpage-test.phpに追加したものです。

テーマを親テーマのTwenty Seventeenに変えて見てみるともちろんその部分の表示はありません。

wordpress子テーマの作成

それほど手間のかからない工程で安全にカスタマイズができるので、テーマをカスタマイズしたい場合は極力子テーマを作成するようにしてください。

親テーマが変わっても、style.cssのTemplate部分を変えるだけで基本的にはOKです。

親テーマのcssがガラッと変わるのでかなりのカスタマイズをかけてる場合は多分崩れますが…


おもしろかった・役に立った
▼ブログランキング参加中!クリック!▼
  • ブログランキング・にほんブログ村へ

Leave a comment

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

ソースコードを記入する場合は [code]~[/code] でくくってください。
[code]
echo "Hello World";
[/code]

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください