traverse_and_serialize_blocks()


WordPressのtraverse_and_serialize_blocks()関数は、ブロックエディタ(Gutenberg)のブロックを走査し、シリアライズするために使用されます。この関数は、ブロックの構造を解析し、それをシリアライズされた形式で返します。

構文

traverse_and_serialize_blocks( array $blocks );
  • $blocks(array) — 走査およびシリアライズするブロックの配列。

例1: 基本的なブロックのシリアライズ

この例では、単純なブロック配列をシリアライズします。

$blocks = parse_blocks( get_the_content() ); echo traverse_and_serialize_blocks( $blocks );

例2: カスタムブロックのシリアライズ

カスタムブロックを作成し、それをシリアライズします。

$custom_blocks = [ 'blockName' => 'core/paragraph', 'attrs' => [], 'innerBlocks' => [] ]; echo traverse_and_serialize_blocks( $custom_blocks );

例3: ネストされたブロックのシリアライズ

ネストされたブロック構造をシリアライズします。

$nested_blocks = [ 'blockName' => 'core/columns', 'innerBlocks' => [ [ 'blockName' => 'core/column', 'innerBlocks' => [] ] ] ]; echo traverse_and_serialize_blocks( $nested_blocks );

例4: ブロックの属性を含むシリアライズ

ブロックの属性を含めてシリアライズします。

$blocks_with_attrs = [ 'blockName' => 'core/image', 'attrs' => [ 'url' => 'https://example.com/image.jpg' ] ]; echo traverse_and_serialize_blocks( $blocks_with_attrs );

例5: 複数のブロックをシリアライズ

複数のブロックを一度にシリアライズします。

$multiple_blocks = [ [ 'blockName' => 'core/paragraph' ], [ 'blockName' => 'core/heading' ] ]; echo traverse_and_serialize_blocks( $multiple_blocks );

例6: 空のブロック配列のシリアライズ

空のブロック配列をシリアライズします。

$empty_blocks = []; echo traverse_and_serialize_blocks( $empty_blocks );

例7: カスタムHTMLブロックのシリアライズ

カスタムHTMLブロックをシリアライズします。

$html_block = [ 'blockName' => 'core/html', 'innerHTML' => '<div>Custom HTML</div>' ]; echo traverse_and_serialize_blocks( $html_block );

例8: ブロックのシリアライズ結果を変数に保存

シリアライズされたブロックを変数に保存します。

$blocks = parse_blocks( get_the_content() ); $serialized_blocks = traverse_and_serialize_blocks( $blocks );

注意点

  • この関数は、ブロックエディタのブロック構造を扱う場合にのみ使用されます。
  • シリアライズされたデータは、データベースに保存する前に適切にエスケープする必要があります。

関連機能: