WordPressテーマの作成とカスタマイズ
数日前、Raindrops1.237がライブになりました。
Raindrops.1.237で追加された機能を簡単に紹介すると
- カスタムヘッダー画像を、個々のページや投稿から選択できるようになったこと
- カテゴリ毎の新着投稿タイトルを、サイドバーに表示するウィジェットが追加になったことです。
私が、このテーマを更新する方法を書いておくことで、Raindropsユーザーの参考になればいいと思い
どんなやり方で機能の追加を行っているのかという事について書いておきたいと思います。
WordPressのRaindropsというテーマを使っている人以外には、何の役にも立たない話なので、ごめんなさい
新しいウィジェットを追加するような変更の場合は、チャイルドテーマを使って、カスタマイズしていきます。
利点:
- 親テーマを変更しないで済む、アイディアが実現できそうにない場合は、塩漬けしてそのまま置いておける
- 追加する関数と、変更が必要な関数をチャイルドテーマにコピーしておくと、そこには必要なものしかないので、見通し良く作業ができる
欠点:
- チャイルドテーマでは、親テーマの関数を呼び出すことができない。(必要に応じて、includeすればいいですが )
- 親テーマの設定をオーバーライドするのに、複雑なことしなければならない。
欠点を補うために、
Raindropsのfunctions.phpには、チャイルドテーマからのカスタマイズがしやすくなるaction fookがある
- do_action( 'raindrops_include_after' );
- 外部ファイルのインクルードが終了した後にあるフック
- do_action( 'raindrops_last' );
- 親テーマのfunctions.phpのコード最終行にあるフック
もっといろいろありますが、割愛、、、
いま、次のバージョンに向けて、テーマカスタマイザーの表示項目の追加と、分類項目の変更という作業を行っています。
Raindropsの場合、lib/option-panel.phpに、デフォルトの設定があるので、チャイルドテーマのlibディレクトリに、同名でファイルをコピーします。
同じディレクトリにファイルをコピーすると、Raindropsは子テーマのファイルを優先して使うようになります。
php css等大抵のファイルは、チャイルドテーマに同じディレクトリ、同じファイル名とすると、チャイルドテーマのファイルを読み込むようになります
変更の必要なファイルは、コピーしてチャイルドテーマのファイルが適用されるようにし、後はチャイルドテーマで、必要な関数を記述していくというやり方をしています
ただ、すべてのテーマで可能かというと、そうではなく、あくまで Raindrops では可能ですという話です。
Raindropsテーマは、チャイルドテーマフレンドリーです