SWELLは便利で素晴らしいテーマですが、カスタマイズ無しでは他のサイトと差別化することができません。
SWELLのカスタマイズというのは、SWELLのカスタマイザーやSWELL設定、追加CSSなどからCSSをカスタマイズするだけでは十分ではありません。
この記事では、SWELLのカスタマイズについて一歩踏み込んで説明していきたいと思います。
SWELLの高度なカスタマイズの作法
SWELLの高度なカスタマイズの作法について説明します。
- SWELLの子テーマを作成する
- get_part()で呼び出されているテンプレートパーツを子テーマにコピーする
- 子テーマにコピーしたテンプレートパーツをカスタマイズする
SWELLはArkheと比べてカスタマイズしにくいテーマか?
SWELLの作者がリリースしているArkheというテーマがあります。
Arkheはサイト制作者向けのテーマでカスタマイズして使用することが前提となっているテーマです。
ArkheにはSnowMonkeyのようなテンプレート上書きフックがあり、子テーマを作らなくてもテンプレートファイルのカスタマイズができますよ!というのがSWELLとの差別化の1つだそうです。
Arkheのその機能は、get_part()
というテンプレート呼び出しを独自関数にフックが仕込んであることで実現しています。

SWELLでも、get_part()
は使用されていますが、Arkheで使用しているget_part()
とは機能が違い、上書きできるフックは用意されていません。
これだけ見ると、Arkhe>SWELLという力関係があるように見えますが、SWELLはArkheよりもカスタマイズしにくいテーマなのでしょうか?
決して、そんなことはありません。
テンプレートファイルをフックで上書きするのは何のため?
テンプレートファイルをフックで上書きする手法がメジャーになったのはSnow monkeyがその手法を取り入れたことが始まりだと思います。

では、なぜSnow monkeyはそのようなことを始めたのかと言えば、子テーマを作らなくてよくするためです。
フックで上書きできると、ファイルをいちいち子テーマにコピーしなくてよくなるメリットはありますが、正直それぐらいのものでしょう。
Snow monkeyのユーザーでも普通に子テーマを作って利用しています。
SWELLでget_part()
を上書きするには?
親テーマのget_part()
を修正するメリットはある?
SWELLでArkheと同じことを実現するには、親テーマのget_part()
を修正しなければ不可能です。
Arkheのget_part()
のソースをSWELLに持っていけば同じことは出来ると思います。
しかし、親テーマを変更するとテーマアップデートで不幸なことが起きますので、そこまでやるメリットはないです。
そもそもget_part()
は変えなくても問題ない
get_part()
はそもそも子テーマで上書きすることを想定した関数です。
get_part()
で呼び出されているテンプレートファイルは、子テーマを作成し、テンプレートファイルを上書きするのが流儀でしょう。
もともと、SnowMonkeyがテンプレートファイルを上書きするフックを用意している背景は、子テーマを作らずにカスタマイズするためです。
テンプレート上書きフックは、子テーマを作れば同じことができるので、そこまで重要な機能ではないのです。
子テーマを作成して上書きする
- 親テーマと同じディレクトリ構造を維持します。
- 変更するテンプレートファイルだけ子テーマに作成するようにします。
例えば、archive.phpというテンプレートファイルを修正したい場合、そこから呼び出されているテンプレートファイルが多くあると思いますが、実際に書き換えたファイルだけ子テーマに用意します。
何でもかんでも子テーマにコピーしてしまうと、親テーマとの差分管理が大変になりますので注意しましょう。
SWELLのウィジェットを機能拡張するカスタマイズ
他の記事で、SWELLの新着記事ウィジェットをカテゴリ別に表示するカスタマイズ、SWELLの人気記事ウィジェットをカテゴリ別に表示するカスタマイズの記事を書いています。
興味のがある方は是非ごらんください。


SWELLのカスタマイズは子テーマが必須
SWELLをある程度自由にカスタマイズしようと思えば、子テーマは必須です。
SWELLのカスタマイズを行うには、テンプレートファイルをゴリゴリ書き換えていく必要があるからです。
子テーマを作って、一度カスタマイズをやり始めると、テンプレートファイルがテンプレートパーツの集合になっているので、カスタマイズが簡単に出来ることに気が付くと思います。

まとめ
SWELLはカスタマイズして他のサイトと差別化するべきです。
カスタマイズしないと金太郎あめのようなサイトの1つになってしまいます。
SWELLのブロックをぼこぼこ置いていくだけの大して中身のない記事を量産するよりも、サイトの見た目や機能をカスタマイズする方が楽しいと思います。
コメント