サポート » テーマ » 子テーマについて

  • テーマフォルダが階層化されているテーマが最近は増えていると思うのですが、こういった構成の場合で子テーマを実現するにはどうすればいいのでしょうか?

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • こんにちは

    子テーマは、WordPressのコアの機能で動作するので、作り方は基本的にどのテーマでも同じで、子テーマ側の、style.cssのコメントに、Template: twentytwelveと記述すれば動作します。

    Codex等では、

    @import url("../twentytwelve/style.css");

    を記述するように説明されていますが、これらは現実には「必要のない場合もあります」

    なぜ、「必要のない場合もあります」なのか?

    子テーマのレビューガイドラインがないので、実装は親テーマの設計に依存するためです。

    テーマフォルダが階層化されているテーマが最近は増えていると思うのですが、こういった構成の場合で子テーマを実現するにはどうすればいいのでしょうか?

    最近のテーマは、テーマフレームワークや、CSSプリプロセッサー、フォントアイコン、レティーナディスプレイ用の画像など、テンプレート以外のライブラリーを読み込んで動作するものが数多くあります。

    メンテナンスや、ユーザーの利便のために、階層化されて整理されているわけですが、

    このようなフレームワーク等のライブラリをオーバーライド可能にするかどうかも、テーマ設計に依存しています。

    大抵のテーマの場合、functions.phpでのライブラリの読み込みは、includeやrequire で、
    get_template_directory().'/hoge/hoge.php'という形で、読み込むますが

    get_template_directory()を使って読み込むものは、チャイルドテーマでオーバーライドする事を許可していないと考えるといいと思います。

    関数の記述も 一般的には

    if( ! function_exists( 'hoge') {
        function hoge(){
    
        }
    }

    のようなプラグアブルに記述されていない関数は、チャイルドテーマからのオーバーライドを、許可していません(一部例外、関数内でフィルタやアクションで対応するものがあります)

    まとめると、

    子テーマが親テーマをどこまでオーバーライドできるかどうかは、「テーマ次第」という事になります。

    も、テーマを作っていますが「時流に反して?フルオーバーライド可能にするぞ派です

    Raindropsというテーマは、チャイルドテーマに親と同名ホルダ/同名ファイルを作っていただくと、チャイルドテーマのファイルを適用するようにしています。

    bootsというテーマは、Raindropsのチャイルドテーマですが、親テーマのchildディレクトリから、ファイルをインクルードする とっても変な仕組みを作って、チャイルドテーマのオーバーライドが限りなく可能にするべく、試行錯誤しています。

    どっちのテーマも公式なので、暇なときにでも見ていただくと、チャイルドテーマのオーバーライドのために、メチャンコ 変なことばっかりしているのがわかってもらえると思います。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「子テーマについて」には新たに返信することはできません。