1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
<?php /** * Server-side rendering of the `core/block` block. * * @package WordPress */
/** * Renders the `core/block` block on server. * * @param array $attributes The block attributes. * * @return string Rendered HTML of the referenced block. */ function render_block_core_block( $attributes ) { if ( empty( $attributes['ref'] ) ) { return ''; }
$reusable_block = get_post( $attributes['ref'] ); if ( ! $reusable_block || 'wp_block' !== $reusable_block->post_type ) { return ''; }
if ( 'publish' !== $reusable_block->post_status || ! empty( $reusable_block->post_password ) ) { return ''; }
return do_blocks( $reusable_block->post_content ); }
register_block_type( 'core/block', array( 'attributes' => array( 'ref' => array( 'type' => 'number', ), ),
'render_callback' => 'render_block_core_block', ) );
|