ホーム > お知らせ, デザインテーマについて, 技術資料 > 【重要】テンプレートの仕様変更について

【重要】テンプレートの仕様変更について

2015 年 12 月 24 日

こんにちは。

child-theme-imgWelcart バージョン1.7 より、子テーマを利用している場合の wc_templates 及び usces_cart.css の仕様が変わります。子テーマに、wc_templats の全てのテンプレートと usces_cart.css を置いていない場合は、スタイルが崩れるなどの影響が出ますので、子テーマの修正が必要となります。以下、その修正方法についてご案内させていただきます。V1.7のリリースは、2016年2月1日を予定いたしておりますので、それまでに修正を終えていただけますようお願いいたします。


子テーマの必要性

WordPress の高機能化と共にテーマも年々複雑になってきて、にわか仕込みではオリジナルテーマを作るどころか、既存のテーマをカスタマイズすることすら難しくなってきています。また、高機能故にリリースしたテーマの修正更新も頻繁に行われているようです。この様な状況下で、手に入れたテーマをそのままカスタマイズしているショップでは、テーマのアップグレードができない為に、バグや脆弱性がそのまま残ってしまうという事になっているのが現状かと思います。このような事にならない為にも、テーマをカスタマイズする場合は子テーマを作成する事がとても重要です。

WordPress には、元となるテーマ(親テーマ)の機能やデザインを継承しながら、新たにテーマ(子テーマ)を作る仕組みが有ります。この仕組みを利用してテーマを作成(カスタマイズ)した場合、親テーマは一切改変しませんので、修正リリースが出た時は、何も気にせずに親テーマのアップグレードが可能となります。もちろん子テーマの作り方次第では絶対安心とは言い切れませんが、その影響を最小限に抑えることができます。

しかし、元となる親テーマが、子テーマを作ることをしっかりと意識した作りになっていないと、子テーマの作成に手間がかかったり、アップグレードの影響が出やすくなってしまいます。
そこで私たちは、長く安心して利用できるテーマ作りを目指している制作者のみなさんのために、子テーマ作りに最適化された Welcart 専用の親テーマ(Welcart Basic)を開発してご提供したいと考えています。

Welcart の子テーマへのアプローチ

さて、Welcart 専用テーマには、wc_templates という専用のテンプレート群と、usces_cart.css という専用のスタイルシートが有ります。子テーマを作る場合、これらは継承されるべきものと考えます。つまり、子テーマにこれらのファイルを設置しない場合は、親テーマのテンプレートやスタイルシートが適用されると言うのが本来の仕組みのはずです。しかし現在の Welcart は、子テーマにこれらのファイルが無い場合、親テーマのものを読まずに Welcart 本体の内臓テンプレートや内臓 usces_cart.css を使ってページを生成しようとします。この仕様では残念ながら、親テーマのデザインを継承できずにスタイルが崩れてしまう事になり、親テーマの wc_templates と usces_cart.css を子テーマにコピーしなくてはいけない事になってしまいます。これでは、親テーマでこれらのファイルの更新が有ってアップグレードしても、子テーマではその恩恵を継承することができません。

子テーマには必要最低限のファイル(テンプレートやスタイルシート)を置いて、できるだけ親テーマを継承することが望ましい形です。 そこで、Welcart の、該当ファイル(wc_templates と usces_cart.css)を読み込む仕様を変更して次のようにしたいと思います。

  • 親テーマに該当ファイルがある場合はそれを読み込む
  • 子テーマに該当ファイルがある場合は、子テーマのそれを読み込む
  • 子テーマに該当ファイルが無い場合は、親テーマのものを読み込む
  • 子テーマにも親テーマにも該当ファイルが無い場合は、Welcart 本体のものを読み込む

この仕様変更で影響が出るケースは、親テーマに wc_templates(全てのテンプレート)と usces_cart.css が有り、子テーマにはその一部もしくは全てが無い場合となります。対処法は次のようになります。

Welcart の仕様変更による対処法

この仕様変更によって影響が出るのは、子テーマを使用しているサイトのみです。
まず、親テーマに wc_templates フォルダが有るかを確認します。その配下にも cart や member といったフォルダが有りますので、それらのフォルダの中にあるテンプレートファイルを全て確認します。そして、それらのテンプレートが子テーマにも同じようにあるかを確認して、もし無いものが有った場合は、親テーマから子テーマにテンプレートをコピーします。元々子テーマにあるファイルを上書きしてしまわないよう、あくまでも無いものだけをコピーしましょう。

この時点で、フロントにどの様な変化があったかを一度確認してみましょう。ほとんど影響が無いことを祈りますが、レイアウトが崩れているようでしたら、コピーしたテンプレートを修正しなくてはいけません。

次に、usces_cart.css をチェックしてみて下さい。テンプレートと同じように子テーマに無い場合は、親テーマからコピーして子テーマに置いてください。再度フロントを確認して適宜修正して行きます。

この修正を行う前に、Welcart 1.7 でどの様になるのかを確認してみたい方は、下記より Wecart 1.7-Beta をダウンロードしてアップグレードを行い、影響が有るかどうかをチェックしてください。バージョン1.3 など古いバージョンの場合は、ダウングレードできませんので、一度1.6にアップグレードしてから試すのが良いかと思います。古いバージョンからアップグレードする時は、Welcartを一旦停止してから行ってください。
Welcart 1.7-beta のダウンロード

以上となります。
この仕様変更についてのご質問はフォーラムの方に投稿していただきたいと思います。
どうぞよろしくお願いいたします。


関連記事