【WordPress ブロックテーマ自作③】theme.jsonの最初の一歩|レイアウト幅とパーツ登録

ファイルの準備ができたら、いよいよ中身を作りたいところですが、もう一つだけ先にやっておきたいことがあります。

この記事でやること:

  • contentSize・wideSize でサイトの幅を決める
  • 調整ツールと余白の設定を有効にする
  • templateParts でヘッダー・フッターを登録する

contentSize・wideSizeって何?

AD – 読み進める前のひとやすみ

テンプレートを組む前に、サイトの「幅」を決めておきましょう。

theme.json で設定する幅は2種類

設定
役割
contentSize
通常コンテンツの幅(本文・見出しなど)
wideSize
幅広表示にしたときの幅(画像・テーブルなど)

幅の目安

サイトの雰囲気
contentSize
wideSize
読みやすさ重視(ブログ)
680px〜800px
1000px〜1200px
情報量多め(情報サイト)
800px〜900px
1200px〜1400px
広々とした印象
900px〜1000px
1400px以上

💡 迷ったら contentSize: 800pxwideSize: 1200px からスタートするのがおすすめです。あとから調整できます。

サイドバーの有無

contentSize・wideSizeはページのレイアウトによって役割が変わります。

📄 サイドバーなし(1カラム)

wideSize
header
contentSize
本文エリア
footer
contentSize 本文の幅
wideSize 画像など幅広表示の幅

📰 サイドバーあり(2カラム)

wideSize(メイン+サイドバー全体)
header
contentSize
本文
sidebar
footer
contentSize 本文エリアの幅
wideSize 本文+サイドバー全体の幅

💡サイドバーなしのページでは wideSize は幅広表示(画像など)に使われますが、
サイドバーありのページでは wideSize を「本文+サイドバー」の合計幅として設計するのがおすすめです。

👇 実際に体感してみよう
「ピンとこない…」という方は、まずシミュレーターで動かしてみるのが一番です。

【WordPress】ブロックテーマのレイアウトをシミュレーターで体感しよう! 目次まず触ってみよう!レイアウトシミュレーター「本文幅 contentSize」って何?「幅広ブロック wideSize」は何のためにある?画面いっぱいに広げる ― 全幅ブロック(alignfull)ブロックの間隔も調整 […]

appearanceToolsについて

AD – 読み進める前のひとやすみ

appearanceTools は、サイトエディターで使えるデザイン調整ツールを有効にする設定です。
true にしないと、エディターの設定パネルから余白・枠線・文字色などを調整するメニューがそもそも表示されません。

appearanceTools: true で使えるようになる主な調整

  • ブロックの余白(padding・margin)
  • 枠線の太さ・色・角丸
  • リンクの色
  • 見出しの文字色

useRootPaddingAwareAlignmentsについて

AD – 読み進める前のひとやすみ

useRootPaddingAwareAlignments は、サイト全体の左右の余白(padding)を統一管理する設定です。
少し長い名前ですが、やっていることはシンプルです。

💡 useRootPaddingAwareAlignments: true にすることで、通常ブロックは余白の内側に、幅広ブロックは余白を考慮しながら、全幅ブロックは画面いっぱいに——それぞれ自動でいい感じに調整してくれます。

💡 appearanceTools: true とセットで使うのが基本です。この2つがそろって初めて、余白まわりが思い通りに動きます。

templatePartsについて

AD – 読み進める前のひとやすみ

templateParts は、ヘッダーやフッターなどの共通パーツをWordPressに登録する設定です。

登録しないとどうなる?

  • サイトエディターの「テンプレートパーツ」一覧に表示されない
  • エディターから直接編集できない
  • area の指定がないとヘッダー・フッターとして正しく機能しない
area
用途
header
ヘッダー専用パーツ
footer
フッター専用パーツ
uncategorized
その他の汎用パーツ(サイドバーなど)

💡 指定しない場合は自動的に uncategorized になります。

theme.jsonにまとめて追加しよう

AD – 読み進める前のひとやすみ

ここまでの設定をまとめると、theme.json はこうなります。

{
  "version": 3,
  "settings": {
    "appearanceTools": true,
    "useRootPaddingAwareAlignments": true,
    "layout": {
      "contentSize": "800px",
      "wideSize": "1200px"
    }
  },
  "styles": {},
  "templateParts": [
    { "name": "header", "title": "ヘッダー", "area": "header" },
    { "name": "footer", "title": "フッター", "area": "footer" },
    { "name": "sidebar", "title": "サイドバー", "area": "uncategorized" }
  ]
}

サイドバー不要で、{ "name": "sidebar", "title": "サイドバー", "area": "uncategorized" }を削除した場合:
{ "name": "footer", "title": "フッター", "area": "footer" },カンマを必ず削除しましょう。

🖊️ theme.json の編集方法

1 管理画面 → 外観テーマファイルエディター を開く
2 右側の「テーマファイル」から theme.json を選択
3 直接編集して「ファイルを更新」で保存

💡 theme.json を管理画面で編集したら、そのコードを手元のファイルにコピペして保存しておきましょう。再インストールや万が一のトラブルのときに役立ちます。

💡 「テンプレートパーツが認識されているか」を「外観」→ 「エディター」 → 「パターン」 → 「テンプレートパーツ一覧」で確認しておきましょう。

JSONで迷子になったら

AD – 読み進める前のひとやすみ

🤖 JSONで迷ったらまずAIに頼ろう

「カッコだらけで何がなんだか…」となったら、そのままAIに貼り付けて聞いてみましょう。

💬 「このJSON、どこかおかしいですか?」
💬 「theme.jsonにカラーパレットを追加したいのですが書き方を教えてください」

エラー箇所を一瞬で見つけてくれます。ただ、ルールを少しだけ知っておくともっとうまく使えます👇

⚠️ よくあるミス① 最後のカンマ問題

❌ ダメな書き方

{
  "slug": "primary",
  "color": "#fff2b2",  ← カンマ
}

✅ 正しい書き方

{
  "slug": "primary",
  "color": "#fff2b2"  ← カンマなし
}

最後の項目の後ろにカンマをつけるとエラーになります。
「最後の子にはカンマなし」と覚えましょう!

💡 {} と [] の使い分け

{ }

オブジェクト

「名前:値」のセット
1つのまとまりを表す

[ ]

配列

同じものの並び
複数登録するとき

"palette": [ ← [] 複数の色を並べるから配列
  {        ← {} 1つの色のまとまり
    "slug": "primary",
    "color": "#fff2b2"
  },       ← カンマあり(次の{}がまだある)
  {        ← {} 2つ目の色
    "slug": "secondary",
    "color": "#a7d9dd"
  }        ← カンマなし(最後)
]

🛠️ エラーが出たときの確認方法

theme.jsonを保存してエディターを開いたときにスタイルが反映されていない場合は👇

  • カンマの過不足がないか確認
  • {}と[]が正しく閉じているか確認
  • JSONLint(無料)にコードを貼り付けるとエラー箇所を教えてくれます!

🔄 正しく書いたのに反映されない 時は

JSONに間違いがないのに変更が反映されない場合は、キャッシュが原因かもしれません。

  • ブラウザの強制リロード(Mac:Cmd+Shift+R / Win:Ctrl+Shift+R)
  • キャッシュ系プラグインのキャッシュをクリア
  • 一度ログアウトして再ログイン

最後まで読んでいただき、ありがとうございました。
おつかれさまでした 🍵

スポンサーリンク