説明
parse_blocks() は、投稿本文を解析し、ブロックの配列に変換する関数です。
基本構文
parse_blocks( string $content ): array[]
引数
$content:ブロックを含む文字列
戻り値
ブロックの配列。
使い方(サンプル)
$blocks = parse_blocks( get_post_field( 'post_content', 123 ) );
注意点
blockName、attrs、innerBlocksなどを持つ配列です。
実務での使いどころ
- 投稿の本文を、ブロックごとの、配列に分解して、処理するとき。
- 特定のブロックの、属性を、取り出すとき。
よくあるミスと対処
- ブロックでない部分(クラシックエディターの内容、ブロックの間の空白)も、
blockNameがnullの要素として、含まれる。foreachで、確認する。 - 入れ子のブロックが、
innerBlocksに入ることを、考えていない。 - ブロック名を、名前空間なしで、比較している。
NG例
foreach ( parse_blocks( $content ) as $block ) {
echo $block['blockName']; // null の要素もある
}
OK例
foreach ( parse_blocks( $content ) as $block ) {
if ( ! empty( $block['blockName'] ) ) {
// ブロックだけを処理
}
}
使い分け早見表
| 関数 | 役割 |
|---|---|
parse_blocks() |
本文を、ブロックの配列に分解する |
render_block() |
ブロック(配列)を、HTMLにする |
has_block() |
本文に、ブロックが含まれるかを確認する |
関連項目
公式リファレンス:parse_blocks() | Function | WordPress Developer Resources

コメント