THEMES
ブロックテーマとは何か。クラシックテーマとの違いから整理する
ブロックテーマは、投稿本文だけでなく、ヘッダー、フッター、一覧、個別記事などサイト全体をブロックで構成するWordPressテーマです。クラシックテーマとの違いは、単に編集画面が新しいことではありません。サイトの構造とデザインをどこで管理するかが変わります。
ブロックテーマの中心はSite Editor
クラシックテーマでは、PHPテンプレートとカスタマイザーが表示の中心でした。ブロックテーマでは、Site Editorからテンプレートやテンプレートパーツを編集します。コードを触らず変更できる範囲が広い一方、編集内容はデータベースにも保存されます。
このため、テーマファイルを更新しても、Site Editorで保存した変更が優先される場合があります。開発時は「ファイルを直したのに反映されない」という状態を想定する必要があります。
theme.jsonがデザインの基準になる
theme.jsonは色、文字サイズ、余白、本文幅などを定義します。ブロックエディターと公開画面で同じ設定を共有できるため、独自CSSだけで全体を制御するより不整合を減らせます。
ただし、すべてをtheme.jsonへ押し込む必要はありません。全体で共有する値はtheme.json、特定パターンの細かな見た目はCSS、という分担が扱いやすい構成です。
テンプレートはHTMLで記述する
ブロックテーマのテンプレートは、基本的にtemplatesとparts配下のHTMLです。ここにはブロックコメントを含むマークアップを記述します。PHPを書けないわけではありませんが、表示構造の中心はブロックです。
| 項目 | クラシックテーマ | ブロックテーマ |
|---|---|---|
| 主なテンプレート | PHP | ブロックを記述したHTML |
| 全体編集 | カスタマイザー、ウィジェット | Site Editor |
| デザイン設定 | PHP、CSS、Customizer API | theme.json、Global Styles |
| 利用者の編集範囲 | テーマ実装に依存 | 比較的広い |
ブロックテーマが向く場合
- 編集者がヘッダーや一覧レイアウトも調整したい
- WordPress標準のブロックを中心に構成したい
- 色や余白をGlobal Stylesで一元管理したい
- 独自の管理画面を増やしたくない
反対に、既存のPHPテンプレートやカスタマイザーへ強く依存しているサイトを、そのまま置き換える用途には向きません。移行では見た目だけでなく、ウィジェット、メニュー、独自フックの扱いを確認する必要があります。
判断の要点
ブロックテーマを選ぶ基準は「新しいから」ではありません。編集者にどこまで変更を許すか、デザインをどこで管理するか、既存機能をどう移行するかで判断します。