wp/wp-includes/blocks/block.php
changeset 9 177826044cd9
child 16 a86126ab1dd4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wp/wp-includes/blocks/block.php	Mon Oct 14 18:28:13 2019 +0200
@@ -0,0 +1,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',
+	)
+);