【WordPress】ブロックマークアップの読み方・書き方入門

「コードを全部書けるようにならないといけないの?」と思った方、安心してください。

ブロックマークアップはエディターからそのままコピーできます。

大事なのは書き方の暗記ではなく、「こういう仕組みで動いている」という理解です。

ブロックテーマはどんな仕組み?

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

まず大前提として。ブロックテーマが「クラシックテーマと何が違うのか」を押さえておきましょう。ここさえわかれば、あとの話がぐっとスムーズになります。

クラシックテーマ

PHPテンプレートで動く

header.php・single.php など、PHPファイルがテンプレートの本体。コードの知識が必要で、自作のハードルが高かった。

ブロックテーマ

HTMLファイルで動く

テンプレートが .html ファイルになった。書き方さえ覚えれば、PHPなしで自作できる。

💡 ポイント

ブロックテーマのテンプレートに書くのは「PHPコード」ではなく「ブロックマークアップ」です。このマークアップの正体が、<!-- wp:paragraph --> のようなHTMLコメントです。

自作ブロックテーマは、思っているよりずっとハードルが低いです。

ブロックマークアップとは

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

ブロックマークアップは「どのブロックをここに置く」という指示書です。WordPressがこれを読んで、実際のHTMLを生成します。

見た目はこんな感じです。

<!-- wp:paragraph {"align":"center"} --> 

<p class="has-text-align-center">ここに本文</p> 

<!-- /wp:paragraph -->
開始コメント
<!-- wp:〇〇 -->

ブロックの始まりを宣言します。ここから「ブロックですよ」という合図です。

ブロック名
wp:paragraph

「wp:」のあとに名前を書きます。段落ならparagraph、画像ならimageとなります。

属性(オプション)
{"align":"center"}

JSON形式で「中央揃え」などの細かい設定を書き込みます。(省略もOK)

終了コメント
<!-- /wp:〇〇 -->

スラッシュ「/」を入れて、ブロックの終わりを宣言します。

<!-- -->(HTMLコメント)の中に書かれているので、ブラウザには表示されません。WordPressだけが読んで処理します。

ブロックマークアップの構造は「ブロックエディタで使っているブロックと1対1で対応」しています。
エディタで、
「段落ブロック」を置いたら wp:paragraph
「見出しブロック」を置いたら wp:heading になります。

基本のルール

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

ルールはシンプルです。「自己閉鎖型」と「囲み型」の2種類と、「属性の書き方」があります。

自己閉鎖型(中身がないブロック)

コンテンツを自分で持たず、WordPress側がデータを取得して表示するブロック。

タグの最後に / がつきます。

サイトのタイトル
<!-- wp:site-title /-->

投稿のタイトル
<!-- wp:post-title /-->

投稿日
<!-- wp:post-date /-->

投稿本文
<!-- wp:post-content /-->

アイキャッチ画像
<!-- wp:post-featured-image /-->

囲み型(中身があるブロック)

開始タグと終了タグで中身を囲む形です。

終了タグにはスラッシュ /wp:○○ が入ります。

<!-- wp:paragraph -->
<p>ここに本文テキスト</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">見出し</h2>
<!-- /wp:heading -->

<!-- wp:group -->
<div class="wp-block-group">
  <!-- wp:paragraph -->
  <p>グループ内の段落</p>
  <!-- /wp:paragraph -->
</div>
<!-- /wp:group -->
注意

開始タグと終了タグは必ず同じファイル内にペアで書きます。また、囲み型の中にさらにブロックを入れてネストすることもできます(グループブロックが典型例)。

属性(オプション設定)の書き方

ブロックにオプションを設定したいときは、ブロック名のあとに JSON 形式で書きます。

属性の内容は HTMLタグ側にも反映させる必要があります。

// 属性なし(シンプル)
<!-- wp:paragraph -->
<p>テキスト</p>
<!-- /wp:paragraph -->


// 属性あり(中央寄せ)
<!-- wp:paragraph {"align":"center"} -->
<p class="has-text-align-center">テキスト</p>
<!-- /wp:paragraph -->


// 属性あり(カラーパレットから色を指定)
<!-- wp:paragraph {"textColor":"vivid-red"} -->
<p class="has-vivid-red-color has-text-color">
  テキスト
</p>
<!-- /wp:paragraph -->


// インラインカスタムカラー(カラーピッカーで任意の色を選んだ場合)
<!-- wp:paragraph {"style":{"color":{"text":"#ff7e7e"}}} -->
<p class="has-text-color" style="color:#ff7e7e">テキスト</p>
<!-- /wp:paragraph -->

カラーパレットで定義済みの色を使うときは、HTMLタグ側にhas-{slug}-color のクラスが付きます。
カラーピッカーで任意の色を指定したときは、コメント内の属性に "style":{"color":{"text":"#ff0000"}} と記録され、HTMLタグ側にも style="color:#ff0000" が自動で付きます。
どちらも、エディタが自動生成します。

テンプレートパーツの読み込み

ヘッダーやフッターなど、別ファイルに分けたパーツを呼び出すときは wp:template-part を使います。

<!-- wp:template-part {"slug":"header","tagName":"header"} /-->

<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->
属性 意味
slug partsフォルダ内のファイル名(拡張子なし)
tagName 出力するHTMLタグ(header / main / footer / aside など)
className 追加するCSSクラス(任意)

コードを「書かない」裏ワザ

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

実は、ブロックマークアップは「手書きしなくていい」んです。エディタで視覚的に組んでから、コードをコピーするだけ。これを知っておくと、自作テーマ制作がぐっとラクになります。

コードをコピーする方法

1

投稿または固定ページの編集画面を開く

テスト用のダミーページでOKです。実際に公開する必要はありません。

2

ブロックエディタで使いたいブロックを配置する

グループ・カラム・段落など、自由に組み立てます。色などの設定もそのままコードに反映されます。

3

コードを取得するには2つの方法
★ 自作テーマに組み込むなら「方法B」が確実です!

方法A:ページ全体

コードエディターに切り替え

右上「⋮」メニューから。全体の構造を一気に確認したい時に使います。

おすすめ!
方法B:3点ドットからコピー

メニューの「コピー」を選択

ツールバーの「⋮」から「コピー」を選択。必要なコードだけを綺麗に抽出できます。

💡 おすすめ!: 全体コピーだと不要なIDなどが混ざることがあります。まずは「方法B」を試してみましょう!
4

必要な部分をテンプレートファイルに貼り付ける

これだけで、手書きゼロのブロックテーマパーツが完成します!

パターンのコードを自作テーマに流用するときの注意点

同期パターン

{“ref”: 1234}

この数字は、そのサイトのデータベースに保存された「同期パターン(旧:再利用ブロック)」のIDです。 これをそのまま別のサイトやテーマファイルに貼っても、相手側にそのIDのデータが存在しないため、何も表示されません。

✅ refを回避して中身をコピーする方法

1

コピーしたい「同期パターン」をエディター上で選択する

2

ツールバーの「⋮」→「解除」をクリックして、通常のブロックに展開する

3

展開されたブロックをコピーする。これでrefのない生のコードが手に入ります!

一度「切り離し」をすると、元のパターンを変更しても反映されなくなります。コードをコピーするための「一時的な作業」として使いましょう!

非同期パターン

自作テーマへ流用する時の「コードお掃除」
非同期パターンからコードをコピーして自作テーマのファイル(.html)に貼る時は、以下の「余分なゴミ」を削除しておきましょう。

② {“metadata”: {…}} を見つけたら

例: <-- wp:group {"metadata":{"categories":[],"patternName":"","name":""}} -->
正体:管理画面用のラベル情報(カテゴリーや名前)。
対策:この記述は削除してOKです。残しておくとエラーの原因になります。

目指すのは <!-- wp:group --> のような
「純粋なブロック情報」だけの状態です!

まとめ

AD – 読み進める前のひとやすみ
  • ブロックテーマのテンプレートは.htmlファイルで動く。PHPは不要。
  • 「自己閉鎖型」と「囲み型」がある。
  • 属性はブロック名のあとに JSON 形式で書く。HTMLタグ側にも反映させる。
  • ブロックマークアップは手書きしなくていい。エディタで組んでコピーすればOK。
  • パターンを流用するときは、同期は解除して、「余分なゴミ」を削除する。



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

スポンサーリンク