WordPressでWebサイトを制作するときのテーマの考え方
WordPressでサイト制作をするときに必ず考えなくてはならないテーマに関するあれこれ。
ブロックエディタが当たり前になったことにより、考え方も変わってきているので、わたしなりのテーマというものの考え方を紹介する。
最初に結論
WordPressを有意義に利用できるようにするためのテーマにすべきである。
そのためにやらなければならないことが多いことから、現実的に考えると既存のテーマをよしなにカスタマイズしていったほうがいい。
テーマとはなにか
WordPressのWebサイトにおける全体的な枠組みや装飾などを設定できるものであり、テーマによって変更が簡易に行える箇所や色の変更などを行うことができるようになっていたりする。
基本的にはこのテーマをベースにブロックを組み立てたりCSSで表示の調整をしていくことで、Webサイトを構築していくということになる。
Web制作ではオリジナルテーマを作ったほうがいいのか
ブロックエディタが当たり前になる前まではオリジナルテーマでエディタ内にHTMLでコーディングしていくという手法が当たり前だったし、それをWordPressにおけるWeb制作と定義していたところも多いかと思う。
静的なHTMLファイルを作りクライアント確認の後、それをオリジナルのテーマに仕上げていき、各ページもそれに合わせてコーディングしていくということをやっていた。
実際わたしもそういう手法が当たり前だと思っていたし、その方法でWebサイトを作成し納品もしていた。
だが今はほとんどその手法を使っていない。
オリジナルテーマではやらなければならないことが多すぎるのだ。
WordPressのアップデートに応じて書き換えなければならない必要がある
WordPressは機能の追加や関数の変更をアップデートの際に行うことがある。
基本的には後方互換性に配慮されているので動作するが、利用しているプラグインが追加された関数を前提としてアップデートされた場合、正常に動作しなくなる。
1つ例を挙げたい。
wp_body_open()
という関数がWordPress5.2から追加された。
body要素の直後になにか挿入したい場合に使用するための関数だ。
テーマ内のheader.phpの適切な箇所に関数を書き込んでおく必要がある。
ということは、WordPress5.2以前に作られたテーマにはこの関数が使われていることはない。
この関数はおそらく各種解析用のタグや広告系のタグなど、あとからタグを入れたいというような機能のプラグインで利用されていると考えられるが、テーマにこの関数が使われていなければプラグインは正常に動作しないのである。
このように、プラグインが正常に動作するためには、WordPressで関数や機能の追加や変更があった際に、テーマを書き換える必要が出てくるのだ。
ブロックへの対応が果てしない
WordPressはユーザーが自由にページを更新できるようにブロックエディタが採用されている。
ブロックの種類も豊富で、アップデートのたびに仕様が変わったり数が増えたりしている。
オリジナルテーマの場合、ブロックの仕様を把握しCSSを設定し、最低でもレイアウトの崩れが起こらないようにしなければならない。
ユーザーがどのブロックを使うのか使いたいのかは、制作中にわかるはずもないため、基本的にすべてのブロックでの対応が必要になるのだ。
さらにアップデートで変更や追加になった分も対応していかなければならないことを考えると、工数をいくらでもかけられるような予算が潤沢すぎるような場合を除き、現実的な選択肢ではないのだ。
では、「Classic Editor」をつかえばいいじゃないかという考えの人もいるとは思うが、現状「Classic Editor」はブロックエディタへ移行するためのフェードアウトの期間であり、いつまでも使えるというわけではない。
また、その他のプラグインはブロックエディタを前提に開発されていくことになるため、WordPressの新しい機能やプラグインにどんどん取り残されていくことになってしまう。
Web制作側の都合で運用上の制限を与えてしまうことは、健全とは言えないだろう。
ベースにする既存テーマは何でもいいのか
何でもいいということはない。
ブロックエディタに対応しているということは言わずもがなであるが、それ以外にも気をつけなければならないことがある。
先にも書いたとおりWordPress5.2での関数の追加があったりもしたように、それに対応してアップデートができているのかどうかということは非常に重要である。
WordPressのアップデートのたびにテーマもアップデートが行われているようであれば、検討してもいいだろう。
また、カスタマイズがしやすいかどうかというのも重要だ。
テーマ独自機能やテンプレートファイルを書き換える必要がないようにフックを用意してあるテーマがある。
このようなテーマは関数で制御できるため、子テーマでのカスタマイズも最小限で済ませられることが多く、運用上安全性が非常に高い。
あとはデフォルトのデザインなどを考慮して選択していけばいいのだ。
最近は子テーマも使わずにデザインスキンという形でCSSやカスタマイズ部分の読み込みを行ってくれるようなものもある。
このようなテーマをベースにしていくと、アップデート時の事故も減り、余計な心労をかける必要も少なくなってくるのだ。
まとめ
既存テーマを利用したWebサイトの制作だと、ベースになっているテーマにデザインを合わせるという必要が出てくる。
そのため、ベースになるテーマを限定して知見をため、いろんなケースに対応できるようになっておくといいかもしれない。
もちろんWordPressの基本機能を追いかけることも忘れてはいけない。
エンドユーザーがWordPressの便利な部分を享受し、更新することに専念してもらえるような設計を心がけたいものである。
Discussion