parse_blocks() の使い方|説明・引数・注意点

説明

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() 本文に、ブロックが含まれるかを確認する

関連項目

render_block()、has_block()

公式リファレンス:parse_blocks() | Function | WordPress Developer Resources

コメント

タイトルとURLをコピーしました