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.


git-svn-id: https://develop.svn.wordpress.org/trunk@48492 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Riad Benguella 2020-07-16 11:48:49 +00:00
parent b001723394
commit bd63261888

View File

@ -6,7 +6,19 @@
* @since 5.5.0 * @since 5.5.0
*/ */
$core_block_patterns = array( add_theme_support( 'core-block-patterns' );
/**
* 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', 'text-two-columns',
'two-buttons', 'two-buttons',
'two-images', 'two-images',
@ -16,17 +28,21 @@ $core_block_patterns = array(
'large-header-paragraph', 'large-header-paragraph',
'three-buttons', 'three-buttons',
'quote', 'quote',
); );
foreach ( $core_block_patterns as $core_block_pattern ) { foreach ( $core_block_patterns as $core_block_pattern ) {
register_block_pattern( register_block_pattern(
'core/' . $core_block_pattern, 'core/' . $core_block_pattern,
require __DIR__ . '/block-patterns/' . $core_block_pattern . '.php' 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' ) ) ); add_action( 'init', '_register_core_block_patterns_and_categories' );
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' ) ) );