Simplicityの特徴 › フォーラム › Simplicityについての質問 › 親テーマも子テーマのインストール
- このトピックには2件の返信、1人の参加者があり、最後に
たいにより10年、 10ヶ月前に更新されました。
-
投稿者投稿
-
-
2015年11月20日 1:20 PM #33765
たい
ゲスト根本的な質問なのですが、親テーマも子テーマもどちらともテーマに追加するべきなのでしょうか?
親・子どちらもインストールし、親テーマインストール後に、子テーマをインストール(Simplicity child 1.90)し有効化したのですが、親テーマ(Simplicity1.9.0)も有効化にすべきなのでしょうか?よく、「Simplicity1.9.xxx公開」などとアナウンスされますが、バージョンアップする手順としては、上書きとかできるものなのでしょうか?
-
2015年11月20日 1:45 PM #33769
Hidekichi
ゲスト子テーマは親テーマがないと動作しませんが、有効にするのは子テーマのみです。
子テーマが有効時に親テーマを有効にすれば、親テーマのみが有効になります。例えば親テーマだけ有効にした場合、親テーマのstyle.cssでスタイルが表示されますよね?
この状況で子テーマを有効にすると、どうなるかと言いますと、子テーマのstyle.cssを見て頂いてわかるように、@import url("../simplicity/style.css");と言うのがあるように、子テーマのstyle.cssは、親テーマのstyle.cssをまず取り込んで、その下に子テーマのスタイルを書くようになっています。
cssの場合、同じセレクタで同じプロパティがある場合、後から読み込んだほうが有効になります。
つまり、親テーマの何かしらのプロパティは、子テーマで数値やプロパティを変えれば、後から読み込まれた子テーマのほうが有効になります。例えば、親テーマに
a:link { color: red; }とあった場合、子テーマで
a:link { color: blue; }とすると、
a:link { color: red; } a:link { color: blue; }と書いているのと同じになります。後からのほうが有効になりますので、aのリンクの色はblueになると言うわけです。
親テーマと子テーマの関係はこれに似ています。
親テーマの機能を利用しつつ、子テーマ側で書かれていることはそちらが優先されるわけです。子テーマは親テーマがないとインストールできなかったと思いますが、両方インストールされている場合、子テーマには、
/* Theme Name: Simplicity child Simplicity Template: simplicity */このような記述がstyle.cssに書かれています。
これは、この子テーマの名前はSimplicity child Simplicityで、そのテンプレートとなるのはsimplicity、つまり親テーマですと言うルールが書かれています。これらを判断して、親テーマと子テーマを関係付けているわけです。親テーマにfunction aaaa(){}と言う関数があった時、これが子テーマで書き変えられる場合は子テーマのfunctions.phpで、同名の関数を利用して内容を変えることができますが、これらは親テーマの設計次第です。
たいていは、function aaaa(){}と言う関数があった時、内容を変更したい場合は、例えばfunction aaaa_ex(){}などとして、子テーマに書きます。これはいわゆる自分が行ったカスタマイズです。そうすると、親テーマのfunctions.phpと子テーマのfunctions.phpがcssと同様に読み込まれるので、後は必要な所でaaaa_ex(){}として利用すれば子テーマの関数が利用できるようになります。このようにして後から自分で追加した関数は親テーマのアップデートとは関係ない所にあるので、親テーマがアップデートされたとしても子テーマの関数を利用できるようになります。
つまり、親テーマがいくらアップデートしても仕様さえ変わらないのであれば子テーマでおこなったカスタマイズは無くならず利用できるということです。逆を言うと親テーマのカスタマイズを直接しなくても済むので、アップデートのたびにカスタマイズのしなおしをしなくても良いことになります。
-
2015年11月20日 2:36 PM #33772
たい
ゲストHidekichiさん、ありがとうございます。
非常にわかりやすい説明で理解できました。
感謝しております!!
-
-
投稿者投稿
- トピック「親テーマも子テーマのインストール」には新しい返信をつけることはできません。