



WithCodeMedia-1-pc
WithCodeMedia-2-pc
WithCodeMedia-3-pc
WithCodeMedia-4-pc




WithCodeMedia-1-sp
WithCodeMedia-2-sp
WithCodeMedia-3-sp
WithCodeMedia-4-sp









生徒WordPressの管理画面に「サイトエディター」ってのが出てきたんですが、これ何ですか? 今までのカスタマイザーと違うんですか?
ペン博士ブロックテーマを使うと出てくる画面だね。ヘッダーもフッターもブロックで組むのが最大の違い。PHPを触らずにサイト全体を編集できる。今日は仕組みと手順を順番に見ていこう。
WordPressには現在、2種類のテーマがあります。従来型のクラシックテーマと、サイト全体をブロックで組むブロックテーマです。
ブロックテーマを有効化すると、管理画面に「サイトエディター」が現れ、ヘッダー・フッター・記事の並び方まで、記事を書くのと同じ操作で編集できるようになります。この仕組みがFSE(フルサイト編集)です。
この記事では両者の違いから始めて、サイトエディターの構成、テンプレートの編集手順、theme.jsonによる設定、既存サイトからの移行判断まで解説します。

見分け方は簡単です。管理画面の「外観」に「エディター」があればブロックテーマ、「カスタマイズ」があればクラシックテーマです。
| 項目 | クラシックテーマ | ブロックテーマ |
|---|---|---|
| ヘッダーの編集 | PHPファイルを直接編集 | サイトエディターで操作 |
| 色・フォントの設定 | カスタマイザー | theme.json+エディター |
| テンプレート | header.phpなど | templates/*.html |
| 必要な知識 | PHP・CSS | ブロック操作が中心 |
| 代表的なテーマ | SWELL・Cocoon | Twenty Twenty-Four以降 |
| 自由度 | PHPで何でもできる | ブロックの範囲内 |
重要なのはどちらが優れているという話ではないという点です。既存の資産や制作体制によって最適解が変わります。判断基準は後半で扱います。

「外観 → エディター」を開くと、左側に5つのメニューが並びます。それぞれの役割を押さえておくと迷いません。
| メニュー | できること | 使う頻度 |
|---|---|---|
| ナビゲーション | メニュー項目の追加・並べ替え | 高 |
| スタイル | 色・フォント・余白の全体設定 | 高 |
| ページ | 固定ページの一覧と編集 | 中 |
| テンプレート | 記事・一覧・404などの型を編集 | 高 |
| パターン | 再利用する部品とヘッダー・フッター | 高 |
最初に触るべきは「スタイル」です。ここで色とフォントを決めておくと、以降の編集で選択肢として出てくるため、統一感が保てます。

ブロックテーマの構造を理解する鍵が、この2つの区別です。
my-block-theme/
├── style.css # テーマ情報(従来と同じ)
├── theme.json # 色・サイズなどの設定(中核)
├── templates/ # テンプレート
│ ├── index.html
│ ├── single.html # 記事ページ
│ ├── archive.html # 一覧ページ
│ ├── page.html # 固定ページ
│ └── 404.html
└── parts/ # テンプレートパーツ
├── header.html
└── footer.html従来のsingle.phpがsingle.htmlになったイメージです。中身はPHPではなくブロックを表すHTMLコメントで書かれています。
<!-- wp:template-part {"slug":"header","tagName":"header"} /-->
<!-- wp:group {"tagName":"main","layout":{"type":"constrained"}} -->
<main class="wp-block-group">
<!-- wp:post-title {"level":1} /-->
<!-- wp:post-featured-image /-->
<!-- wp:post-content /-->
</main>
<!-- /wp:group -->
<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->この記述はサイトエディターで操作すれば自動生成されます。ファイルを直接書く必要はありませんが、構造を知っておくと不具合時に原因を追えます。

最も需要が多い操作です。ロゴの差し替えからメニューの配置まで、この流れで行います。
1. 外観 → エディター を開く
2. 「パターン」→「テンプレートパーツ」→「ヘッダー」を選ぶ
3. 右上の鉛筆アイコンで編集モードに入る
4. ロゴ・メニュー・ボタンなどのブロックを配置する
5. 右上「保存」→ 変更対象を確認して保存注意点は保存時のダイアログです。何を保存するかのチェックボックスが出るため、意図しない項目まで保存しないよう確認してください。テンプレートとスタイルを同時に変更している場合、両方にチェックが入ります。
ヘッダーのグループブロックを選択
→ 右サイドバーの「位置」→「粘着(Sticky)」を選ぶCSSを書かずに追従ヘッダーが作れます。ただし親のグループが「全幅」でないと選択肢が出ないことがあるため、配置の設定も確認してください。

ブロックテーマで最も強力なのがクエリループブロックです。「どの記事を・何件・どう並べるか」をブロックの設定で指定できます。
| 設定項目 | 内容 | 使いどころ |
|---|---|---|
| 投稿タイプ | 投稿・固定ページ・カスタム投稿 | 実績一覧など |
| 表示件数 | 1ページあたりの件数 | トップは3〜6件 |
| 並び順 | 新しい順・タイトル順など | 用途に応じて |
| カテゴリー | 特定カテゴリに絞る | 特集ページ |
| レイアウト | リスト or グリッド | 一覧の見せ方 |
<!-- wp:query {"query":{"perPage":6,"postType":"post","order":"desc","orderBy":"date"},
"layout":{"type":"default"}} -->
<div class="wp-block-query">
<!-- wp:post-template {"layout":{"type":"grid","columnCount":3}} -->
<!-- wp:post-featured-image {"isLink":true,"aspectRatio":"16/9"} /-->
<!-- wp:post-title {"isLink":true,"level":3} /-->
<!-- wp:post-excerpt {"excerptLength":60} /-->
<!-- /wp:post-template -->
<!-- wp:query-pagination -->
<!-- wp:query-pagination-previous /-->
<!-- wp:query-pagination-numbers /-->
<!-- wp:query-pagination-next /-->
<!-- /wp:query-pagination -->
</div>
<!-- /wp:query -->従来ならWP_QueryをPHPで書いていた処理です。コードを書かずに一覧を作れるのが、ブロックテーマ最大の実用的な利点といえます。

ブロックテーマの中核となる設定ファイルです。ここに書いた値が、エディターの選択肢としてそのまま出てきます。
{
"$schema": "https://schemas.wp.org/trunk/theme.json",
"version": 3,
"settings": {
"color": {
"palette": [
{ "slug": "primary", "color": "#0ea5e9", "name": "メインカラー" },
{ "slug": "ink", "color": "#16202b", "name": "本文" },
{ "slug": "bg", "color": "#f6f8fa", "name": "背景" }
],
"custom": false
},
"typography": {
"fontSizes": [
{ "slug": "small", "size": "0.875rem", "name": "小" },
{ "slug": "medium", "size": "1rem", "name": "標準" },
{ "slug": "large", "size": "clamp(1.4rem, 1.1rem + 1.3vw, 2rem)", "name": "大" }
]
},
"layout": { "contentSize": "760px", "wideSize": "1200px" }
},
"styles": {
"color": { "background": "var(--wp--preset--color--bg)",
"text": "var(--wp--preset--color--ink)" },
"typography": { "lineHeight": "1.8" }
}
}"custom": falseにするとカラーピッカーで自由な色を選べなくなります。ブランドカラー以外を使わせたくない案件では、この一行が効きます。
定義した値は自動でCSS変数として出力されるため、追加CSSからも参照できます。
.my-box {
background-color: var(--wp--preset--color--primary);
font-size: var(--wp--preset--font-size--large);
}よく使う組み合わせを「パターン」として保存すると、どのページでも呼び出せます。CTAや料金表など、繰り返し登場する部品に向きます。
<?php
/**
* Title: お問い合わせCTA
* Slug: my-theme/cta
* Categories: call-to-action
*/
?>
<!-- wp:group {"backgroundColor":"bg","layout":{"type":"constrained"}} -->
<div class="wp-block-group has-bg-background-color">
<!-- wp:heading {"textAlign":"center"} -->
<h2 class="has-text-align-center">まずは無料で相談する</h2>
<!-- /wp:heading -->
<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center"}} -->
<div class="wp-block-buttons">
<!-- wp:button -->
<div class="wp-block-button"><a class="wp-block-button__link" href="/contact/">問い合わせる</a></div>
<!-- /wp:button -->
</div>
<!-- /wp:buttons -->
</div>
<!-- /wp:group -->patterns/フォルダにこのファイルを置くだけで、エディターのパターン一覧に表示されます。テーマに同梱できるため、納品後の運用でも使い回せます。
ブロックテーマでもCSSは書けます。ただし優先順位を理解しておかないと、指定が効かず混乱します。
| 方法 | 反映範囲 | 使う場面 |
|---|---|---|
| theme.json | サイト全体の基本 | 色・文字サイズ・余白 |
| サイトエディターの「スタイル」 | サイト全体 | 非エンジニアの調整 |
| ブロック個別の設定 | その要素のみ | 1箇所だけの調整 |
| 追加CSS | サイト全体 | 細かい上書き |
子テーマのstyle.css | サイト全体 | 本格的な調整 |
原則はtheme.jsonで決められることはCSSで書かないです。theme.jsonに書けばエディター上の見た目にも反映されますが、CSSだけだと編集画面と実際の表示がずれます。
結論から言うと、動いているクラシックテーマのサイトを急いで移行する必要はありません。判断材料を整理します。
| 状況 | 推奨 | 理由 |
|---|---|---|
| 新規制作・シンプルな構成 | ブロックテーマ | PHPなしで完結する |
| 更新をクライアントが行う | ブロックテーマ | 触れる範囲が広い |
| SWELL等の高機能テーマで運用中 | そのまま | 移行の利益より手間が大きい |
| 複雑なカスタム投稿・独自機能 | クラシック | PHPの自由度が必要 |
| 既存の資産(ブロック・CSS)が多い | そのまま | 作り直しになる |
なお、クラシックテーマが廃止される予定は現時点でありません。両者は並行してサポートされています。

導入時に高確率で出る疑問と、その解決方法です。
| 症状 | 原因 | 対処 |
|---|---|---|
| 「カスタマイズ」が消えた | ブロックテーマ有効化 | 外観→エディターを使う |
| 変更が反映されない | 保存対象が未選択 | 保存ダイアログで確認 |
| テンプレートを壊した | 編集ミス | 右上メニューから初期化 |
| 色が選べない | theme.jsonでcustom:false | 設定を変えるか許可色を追加 |
| ウィジェットが使えない | FSEでは非対応 | パターンかブロックで置換 |
| プラグインの表示が崩れる | クラシック前提の設計 | 対応状況を確認する |
3つ目の「初期化」は覚えておく価値があります。テンプレートを編集して収拾がつかなくなっても、テーマの初期状態に戻せるため、思い切って試せます。
自作する場合、必要なファイルは驚くほど少なくて済みます。最小構成から始めて、必要に応じて足していきます。
my-theme/
├── style.css # テーマ情報を書くヘッダーコメントのみ
├── theme.json # 設定
└── templates/
└── index.html # これが無いとテーマとして認識されない/*
Theme Name: My Block Theme
Theme URI: https://example.com/
Author: 制作者名
Description: ブロックテーマの最小構成サンプル
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: my-theme
*/<!-- wp:group {"tagName":"main","layout":{"type":"constrained"}} -->
<main class="wp-block-group">
<!-- wp:query {"query":{"perPage":10,"postType":"post"}} -->
<div class="wp-block-query">
<!-- wp:post-template -->
<!-- wp:post-title {"isLink":true} /-->
<!-- wp:post-excerpt /-->
<!-- /wp:post-template -->
</div>
<!-- /wp:query -->
</main>
<!-- /wp:group -->この3ファイルをwp-content/themes/に置けば、もうサイトエディターで編集できる状態になります。あとはエディター上で組み立て、必要になった時点でファイルへ書き出します。
サイトエディターでの編集内容は、初期状態ではデータベースに保存されます。テーマファイル側へ書き出したい場合は、エクスポート機能を使います。
外観 → エディター → 右上のオプション(︙)→「書き出し」
→ ZIPがダウンロードされる(templates/ と parts/ が最新の状態で入る)納品用のテーマにまとめるときや、Gitで管理したいときはこの手順を使います。データベース側の変更が残っていると、ファイルよりそちらが優先される点に注意してください。
ブロックテーマで頻繁に使う「動的な」ブロックを整理します。記事を書くときのブロックとは別の系統です。
| ブロック | 役割 | 置く場所 |
|---|---|---|
| サイトロゴ | ロゴ画像を表示 | ヘッダー |
| ナビゲーション | メニューを表示 | ヘッダー |
| 投稿タイトル | その記事のタイトル | single・archive |
| 投稿コンテンツ | 本文が入る領域 | single・page |
| アイキャッチ画像 | サムネイル | single・一覧 |
| クエリループ | 記事一覧 | index・archive |
| 投稿日・投稿者 | メタ情報 | single |
| テンプレートパーツ | ヘッダー等の呼び出し | 各テンプレート |
混同しやすいのが「見出し」と「投稿タイトル」です。前者は固定の文字を置くブロック、後者は表示中の記事名が自動で入るブロックです。テンプレートでは後者を使います。
<!-- ✗ テンプレートに固定の見出しを置くと、全記事で同じ文字になる -->
<!-- wp:heading -->
<h1>記事タイトル</h1>
<!-- /wp:heading -->
<!-- ○ 投稿タイトルブロックを使う -->
<!-- wp:post-title {"level":1} /-->学習や検証に使いやすいテーマを挙げます。まずは公式テーマで構造を掴むのが近道です。
公式テーマはtheme.jsonの書き方の見本にもなります。管理画面から有効化して、テンプレートとパーツの構成を実際に開いてみると理解が早まります。
ブロックテーマを採用すると、制作の進め方そのものが変わります。どこが変わるのかを押さえておくと、見積もりや体制づくりを誤りません。
クラシックテーマではPHPで自由に組めたため、細部は実装しながら決められました。ブロックテーマではtheme.jsonで許可した範囲がそのまま制作の枠になるため、色・文字サイズ・余白の設計を先に固める必要があります。
| 工程 | クラシック | ブロック |
|---|---|---|
| 初期設計 | ざっくりでも進む | theme.jsonを先に固める |
| 実装 | PHP+CSSで自由 | ブロック+theme.json |
| 一覧の実装 | WP_Queryを書く | クエリループで設定 |
| 納品後の修正 | 制作側が対応 | 運用側で完結しやすい |
ヘッダーのバナー差し替え、トップの記事件数変更、CTAの文言修正といった依頼が、運用側で完結します。制作側の細かな修正対応が減るぶん、保守契約の内容も見直す価値があります。
権限は重要です。編集者ロールではサイトエディターを開けません(テンプレート編集には管理者権限が必要)。運用担当に何を任せるかで、付与する権限を決めてください。
「PHPを書かないから安い」と単純には言えません。ブロックの制約内でデザインを実現する調整や、パターンの整備には相応の時間がかかります。特に既存のデザインカンプをそのまま再現しようとすると、CSSでの上書きが増えて逆に手間になることがあります。
| 作業 | 工数の傾向 | 備考 |
|---|---|---|
| theme.json設計 | 増える | 最初に全部決める |
| ヘッダー・フッター | 減る | エディターで組める |
| 記事一覧・アーカイブ | 大きく減る | クエリループ |
| 独自デザインの再現 | 増えることがある | ブロックの制約と衝突 |
| 納品後の修正対応 | 減る | 運用側で完結 |
カンプ先行で作るなら、デザイン段階からブロックで表現できる構成にしておくのが最も効率的です。ブロックテーマは、デザインと実装を分断しない進め方と相性が良い仕組みだといえます.
ブロックテーマは、ヘッダーからフッターまでをブロックで組み立てる仕組みです。「外観 → エディター」から、テンプレート(ページの型)とテンプレートパーツ(使い回す部品)を編集します。記事一覧はクエリループブロックで、PHPを書かずに条件と並び順を指定できます。色やフォントはtheme.jsonに定義すると、エディターの選択肢とCSS変数の両方に反映されるため、まずここを整えるのが近道です。既存サイトの移行は必須ではなく、新規制作やクライアント自身が更新するサイトから採用するのが現実的な進め方になります。
管理画面の「外観」メニューを見てください。「エディター」があればブロックテーマ、「カスタマイズ」があればクラシックテーマです。両方表示される場合もありますが、その場合はテーマが部分的にブロック対応している状態です。
現時点で廃止の予定はありません。WordPressは両方式を並行してサポートしており、SWELLやCocoonのような高機能なクラシックテーマも活発に更新されています。急いで移行する必要はなく、新規案件から段階的に採用するのが現実的です。
ブロックテーマでは実質的に必須です。色・フォントサイズ・余白・レイアウト幅といった基本設定がここに集約されており、書かないとWordPress既定の設定がそのまま使われます。CSSで上書きすることもできますが、編集画面の表示と実際の表示がずれる原因になります。
ブロックテーマではどちらも使いません。ウィジェットの役割はテンプレートパーツとブロックが担い、カスタマイザーの設定はサイトエディターの「スタイル」に移ります。ウィジェット前提のプラグインは、対応状況を事前に確認してください。
サイトエディターでそのテンプレートを開き、右上のオプションメニューから「初期化(テーマの状態に戻す)」を選べば、テーマ同梱の初期状態に戻せます。ページごと・パーツごとに戻せるため、他の編集内容は保持されます。

目的に合わせて選べる「AI副業」「AI転職」「AI活用」の3コースを用意。副収入・キャリアチェンジ・日常の生産性アップまで、あなたのゴールに合わせてAIを学べます。
会員登録はカンタン30秒で完了します。まずは公式LINEから、無料でAI学習をスタートしましょう!
WithCodeでWeb制作を習得後、フリーランスエンジニアとして活動。HTML/CSS・JavaScript・WordPress案件を中心に年間20件以上の制作実績を持つ。「難しい技術をわかりやすく」をモットーに、初心者〜中級者向けの技術記事を執筆。副業・フリーランス独立を目指す方に向けた情報発信に注力している。
公式サイト より
今すぐ
無料カウンセリング
を予約!