■まずは親テーマ探し
お店のホームページをWordPressで新規作成予定
(自分で、ではなく業者さんに頼む予定)ですが、
そのつなぎとして現在のショップブログを新しいテーマに変更しようと計画。
現在使用中のテーマが古く、3.0以降の新機能対応などのアプデもなく、
メニューやカラムの構成などあまり自由がきかないためいろいろと調査。
そんなわけで、見つけてきたテーマは「snow summit」
カラムの構成を自由に変更できるし、ヴィジェットエリアも自由度が高い。
かつ、シンプル。
これをちょこっといじってしばらくはやり過ごそう!ってことで決定。
今は「子テーマ」という機能があるので、その機能を利用してカスタマイズ。
これをつかうとベースのテーマ(親テーマ)を利用して、
親テーマに手を加えずにカスタマイズを簡単に行える。
親テーマがアップデートしても、カスタマイズ部分が影響を受けないので、
アップデート時にあれこれいじくる時間も大幅に短縮されるはず。
■さて、その設定方法。
以下、参照したページ。
子テーマ – WordPress Codex 日本語版
WordPress、子テーマを使ってマルチサイトのテンプレートを切り替える方法 – とりあえず9JP
結局最低限やることは、
- テーマディレクトリに子テーマ名のディレクトリを作成
- style.cssをその中に作成
- style.cssの中に以下の記述をする。
[css]/*
Theme Name: 子テーマ名
Template: 親テーマのディレクトリ名
*/[/css]
あとは、
[css]@import url('../親テーマ/style.css');[/css]
としておけば、子テーマのstyle.cssにカスタマイズ部分を追加するだけでOK。
たったこれだけ。
うーん、思っていたよりも最初の設定は楽ちんだった。
もちろん、その他のテンプレートファイルなど全てのファイルも同様にできます。
例外として、functions.phpだけはオーバライド(上書き)ではなく追加になり、
親テーマに同じ関数がある場合はその関数だけ子テーマで書いたものになり、
他の関数は親テーマのものになります。
↑はいこれ、自分でfunctions.phpを子テーマに作ったらはまりました。
正確に書くと、子テーマのfunctions.phpが親テーマのfunctions.phpの前に呼び出されるようです。
で、同じ関数を子テーマで定義している場合、親テーマの方でfuction_existを使っていれば、
子テーマの関数が使われます。でなければ、関数の二重定義でページが真っ白になります(笑)
その場合の回避策として、以下に参考ページがあります。(試してはいませんが…)
WordPressの子テーマで、親テーマのfunctions.phpを上書きする方法 – ふじこのプログラミング奮闘記
これで心置きなく、親テーマのコードをいじったりすることなくカスタマイズできます!
–
2011/5/3 修正