サポート » 使い方全般 » 子テーマに関する質問です。

  • 解決済 meijix

    (@meijix)


    子テーマ利用に関する質問です。現在、勉強中なのですが、以下のところがわかりません。ご存じの方、是非ご指導をお願い致します。

    A)あちこちのサイトで調べたところ、function.phpに関して、子テーマ側で、処理を追加するのは大きな問題はないが、既存の処理を変更したり、上書きしたりするのは一定の技術が必要だとわかりました。

    B)CSSに関しては、部分上書き、部分追加も基本的に問題なし。「@import url(‘../abc_default/style.css’);」を最初に張り込んでおいて、親テーマのCSSを読み込ませて必要な部分を追加したり、上書きすることができるという認識です。

    問題は下記の二つです。

    1)function.phpとCSS以外のファイルは、部分追加や部分上書きは不可で、同名のファイルを作って、ファイル全体の上書きになるという認識です(誤りでしたら、ご指導ください)。そうであると、すると、例えば、header.phpを子テーマで上書きして変更した後、親テーマでバージョンアップがあった場合、子テーマ側のheader.phpにはバージョンアップの内容が全く反映されないということになります。もしそのバージョンアップの内容が、bodyやその他の部分と連携するものであった場合(そういうものがあるとすればですが)、子テーマがきちんと動かなくなるということがありそうにみえます。この認識は正しいでしょうか。

    2)親テーマのデザインを子テーマのCSSを使って、いろいろ変更することができるのは理解できます。カラーを変更したり、文字の属性を変えたりもできると思います。しかし、たとえば、ヘッダーにあるサイト説明の部分「<?php bloginfo(‘description’); ?>」をcontent.phpの位置に移動したい場合はどうしたら、いいのでしょうか。そのような方法は存在しないのでしょうか。
    CSSを使って、「display: none」で「<?php bloginfo(‘description’); ?>」の領域を消してしまうことはできます。移動する方法として、もし、移動先がサイドバーであれば、ウィジェットに書き込むという手があると思います。しかし、その他の場所に移動したい場合、何か方法があるのでしょうか?もしご存じでしたら、是非ご指導ください。よろしくお願い致します。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんばんは。
    子テーマで自分のサイトを作っている、ずぶの素人の者です。
    (音痴なカラオケ程度のレベルです)

    お使いのテーマは、Twenty Eleven とかでしょうか。

    はじめて、子テーマで、サイトを作るということでしたら、ネット上で情報が多いテーマがおすすめです。

    で、ご質問の件ですが

    1)

    function.phpとCSS以外のファイルは、ファイル全体の上書きになるんで
    むずかしく考えず
    親テーマ(元になるテーマ)テーマから、ファイルごと、コピーしちゃいます。。

    そして、子テーマ用に用意した
    たとえば、header.php なら、その中で、たった一カ所とか、ほんとにちょびっとずつ
    ご自分で
    「このコードは、変更してもだいじょうぶ」「削除してもいい」
    と自信を持てる箇所のみ、ファイルの中身を書き換えます。

    そして
    変更や削除などした箇所は、どこなのか、どういう変更を加えたかを
    ご自分でわかるように
    ファイル自体に、コメントを入れておくとか
    (アナログな方法ですが)メモをとっておくといいです。

    あと、もしも親テーマが、Twenty Eleven だとしたら

    http://8bitodyssey.com/archives/2275

    こちらの記事に、英語で書いている説明書きの、日本語訳が載っていますので
    何のことやら、サッパリわからなかった部分の意味が、解明できるかもしれないです。

    自信を持ってやったのに、表示がくずれたり、PHPエラーが、表示されたりしたら
    稼働中のサイトなら
    速攻、テーマを親テーマに戻して、何が原因なのか、地道にさがします。

    それの繰り返しで、ずいぶん、いろんなことが、わかってくると思います。

    子テーマで、サイトを作るのは、テーマが動かなくなって、不安だと考えずに
    カメさんの歩みで、取り組んでみてください。

    2)

    header.php にサイト説明のコードがあるのであれば、子テーマ用の header.php から
    そのコードを削除しちゃって
    ご希望どおりに、サイト説明の表示が消えていることを、まず確認してみてください。

    それで、大丈夫だったら
    こんどは、子テーマ用の content.php で、表示させたい箇所に
    サイト説明のコードを、追加してみます。

    「ここに表示したいんだよね」と、思う箇所に、サイト説明が表示できるまで
    コード追加の位置を、あちこち変えてみます。

    うまくご希望どおりの場所に表示できたら、「よっしゃぁ」て感じになると思います。

    それから、親テーマが、アップデートされたら
    いったいどの部分が、アップデートされたのかを
    子テーマ用にコピーして作った、ファイルだけでいいので
    親テーマと、にらめっこして、時間をかけて、見比べてみてください。

    見ても、よくわからなくて、表示もうまくできなければ
    サイトの表示は、いったん親テーマに戻して
    新しい親テーマから、子テーマ用のファイルを新しく作って
    また新たに
    ご自分の希望に合うように、変更や修正や削除など、一個一個、してみてください。

    わからないことが多い間は、地味に地味に、ちょびちょびと
    変更しちゃあ、やり直しを、繰り返す感じでいいんじゃないかと思います。

    ずぶの素人レベルだと、根気よく、とか、しつこく食い下がると
    思ったよりもずっと早く、子テーマで、functions.php の上書きだってできるように
    なると思います。

    がんばってくださいね。(^^)

    トピック投稿者 meijix

    (@meijix)

    丁寧なご回答をありがとうございました。function.phpとCSS以外は部分上書きができず、全上書きになることが確認できて大変助かりました。

    今回子テーマを作ろうとトライしているのはWelcartのデフォルトテーマです。これまでは、Welcartさんが提供しているテーマをいじらずに使うか、Welcartは全く使わずに、ソシム社のレッスンブックとデザインブックから作った独自テーマのどちらかでやっていたのですが、今回勉強のために、Welcartのテーマを子テーマで変更して使ってみるつもりでいます。

    ただ、すぐに売れる見込みはないとはいえ、いちおうネットショップなので、親テーマのバージョンアップで、子テーマが動かなくなるのは困るなと思い、可能であれば、CSSのみの変更で済ませたいなと考えました。

    そうであると、header.phpからhome.phpへの大移動はないにしても、home.php内で、テンプレートタグの位置の入れ替えとかがCSSでできると、自由度がぐっと広がるなと思って質問させて頂きました。しかし、ご回答頂いた内容からすると、やはりhome.phpを直接いじるしかないようですね。不透明だった部分がはっきりして大変助かりました。

    次回、機会があるときにTwentyElevenの子テーマ利用も、是非トライしてみようと思っています。時間を割いて、回答してくださり、誠にありがとうございました。

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