From 17f6c106c3a0cc8ab2f88208f572f2d38bc36b5c Mon Sep 17 00:00:00 2001 From: youknowriad Date: Thu, 16 Jul 2020 11:50:07 +0000 Subject: [PATCH] Block Editor: Add theme support flag to opt-out of Core Block Patterns. WordPress Core comes by default with a number of block patterns and a frequent request was to be able to opt-out of the Core block patterns. You can now opt-out using remove_theme_support( 'core-block-patterns' ) Props desrosj, nosolosw. Fixes #50669. Built from https://develop.svn.wordpress.org/trunk@48492 git-svn-id: http://core.svn.wordpress.org/trunk@48254 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/block-patterns.php | 58 ++++++++++++++++++++++------------ wp-includes/version.php | 2 +- 2 files changed, 38 insertions(+), 22 deletions(-) diff --git a/wp-includes/block-patterns.php b/wp-includes/block-patterns.php index fe80dc921c..742db0fc4f 100644 --- a/wp-includes/block-patterns.php +++ b/wp-includes/block-patterns.php @@ -6,27 +6,43 @@ * @since 5.5.0 */ -$core_block_patterns = array( - 'text-two-columns', - 'two-buttons', - 'two-images', - 'text-two-columns-with-images', - 'text-three-columns-buttons', - 'large-header', - 'large-header-paragraph', - 'three-buttons', - 'quote', -); +add_theme_support( 'core-block-patterns' ); -foreach ( $core_block_patterns as $core_block_pattern ) { - register_block_pattern( - 'core/' . $core_block_pattern, - require __DIR__ . '/block-patterns/' . $core_block_pattern . '.php' - ); +/** + * Registers the core block patterns and categories. + * + * @since 5.5.0 + * @private + */ +function _register_core_block_patterns_and_categories() { + $should_register_core_patterns = get_theme_support( 'core-block-patterns' ); + + if ( $should_register_core_patterns ) { + $core_block_patterns = array( + 'text-two-columns', + 'two-buttons', + 'two-images', + 'text-two-columns-with-images', + 'text-three-columns-buttons', + 'large-header', + 'large-header-paragraph', + 'three-buttons', + 'quote', + ); + + foreach ( $core_block_patterns as $core_block_pattern ) { + register_block_pattern( + 'core/' . $core_block_pattern, + require __DIR__ . '/block-patterns/' . $core_block_pattern . '.php' + ); + } + } + + register_block_pattern_category( 'buttons', array( 'label' => _x( 'Buttons', 'Block pattern category', 'gutenberg' ) ) ); + register_block_pattern_category( 'columns', array( 'label' => _x( 'Columns', 'Block pattern category', 'gutenberg' ) ) ); + register_block_pattern_category( 'gallery', array( 'label' => _x( 'Gallery', 'Block pattern category', 'gutenberg' ) ) ); + register_block_pattern_category( 'header', array( 'label' => _x( 'Headers', 'Block pattern category', 'gutenberg' ) ) ); + register_block_pattern_category( 'text', array( 'label' => _x( 'Text', 'Block pattern category', 'gutenberg' ) ) ); } -register_block_pattern_category( 'buttons', array( 'label' => _x( 'Buttons', 'Block pattern category', 'gutenberg' ) ) ); -register_block_pattern_category( 'columns', array( 'label' => _x( 'Columns', 'Block pattern category', 'gutenberg' ) ) ); -register_block_pattern_category( 'gallery', array( 'label' => _x( 'Gallery', 'Block pattern category', 'gutenberg' ) ) ); -register_block_pattern_category( 'header', array( 'label' => _x( 'Headers', 'Block pattern category', 'gutenberg' ) ) ); -register_block_pattern_category( 'text', array( 'label' => _x( 'Text', 'Block pattern category', 'gutenberg' ) ) ); +add_action( 'init', '_register_core_block_patterns_and_categories' ); diff --git a/wp-includes/version.php b/wp-includes/version.php index 60ea83fffc..049149ca9b 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -13,7 +13,7 @@ * * @global string $wp_version */ -$wp_version = '5.5-beta2-48491'; +$wp_version = '5.5-beta2-48492'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.