render_block()


WordPressのrender_block()関数は、ブロックのHTMLをレンダリングするために使用されます。Gutenbergエディタで作成されたブロックをPHP側で処理したい場合に利用します。

構文

render_block( array $block );
  • $block (array) — レンダリングするブロックの配列。’blockName’と’attrs’などのキーを含む必要があります。

例1: 基本的なブロックのレンダリング

シンプルな段落ブロックをレンダリングします。

echo render_block(['blockName'=>'core/paragraph','attrs'=>['content'=>'こんにちは、世界!']]);

例2: カスタムブロックのレンダリング

カスタムブロックをレンダリングする例です。

echo render_block(['blockName'=>'my-plugin/custom-block','attrs'=>['color'=>'red']]);

例3: 投稿からブロックを取得してレンダリング

投稿のコンテンツから最初のブロックを取得し、レンダリングします。

$blocks=parse_blocks(get_post(get_the_ID())->post_content);echo render_block($blocks[0]);

例4: ブロックの属性を変更してレンダリング

ブロックの属性を変更してからレンダリングします。

$block=['blockName'=>'core/heading','attrs'=>['content'=>'変更された見出し','level'=>2]];echo render_block($block);

例5: 条件付きブロックレンダリング

特定の条件でブロックをレンダリングします。

if(is_front_page()){echo render_block(['blockName'=>'core/image','attrs'=>['url'=>'example.jpg']]);}

例6: 複数のブロックをループでレンダリング

複数のブロックを一括でレンダリングします。

foreach(parse_blocks(get_the_content())as$block){echo render_block($block);}

例7: フィルターフックを使用したブロックレンダリング

レンダリング前にブロックをフィルタリングします。

add_filter('render_block_data',function($block){$block['attrs']['className']='custom-class';return$block;});echo render_block($block);

注意点

  • ブロックが正しい形式でない場合、空の文字列が返される可能性があります。
  • レンダリング前にブロックのバリデーションを行うことを推奨します。
  • パフォーマンスに影響する可能性があるため、ループ内での過度な使用は避けてください。