PluginProbe
Gutenberg / 9.5.2
Gutenberg v9.5.2
23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 12.6.0 7.4.0 All 402 releases
gutenberg / lib / block-patterns.php

block-patterns.php in Gutenberg 9.5.2, at lib/block-patterns.php

67 lines 3.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Add support for block patterns and register default patterns.
4 *
5 * @package gutenberg
6 */
7
8 add_theme_support( 'core-block-patterns' );
9
10 /**
11 * Extends block editor settings to include a list of default patterns.
12 *
13 * @param array $settings Default editor settings.
14 *
15 * @return array Filtered editor settings.
16 */
17 function gutenberg_extend_settings_block_patterns( $settings ) {
18 $settings['__experimentalBlockPatterns'] = WP_Block_Patterns_Registry::get_instance()->get_all_registered();
19 $settings['__experimentalBlockPatternCategories'] = WP_Block_Pattern_Categories_Registry::get_instance()->get_all_registered();
20
21 return $settings;
22 }
23 add_filter( 'block_editor_settings', 'gutenberg_extend_settings_block_patterns', 0 );
24
25
26 /**
27 * Load a block pattern by name.
28 *
29 * @param string $name Block Pattern File name.
30 *
31 * @return array Block Pattern Array.
32 */
33 function gutenberg_load_block_pattern( $name ) {
34 return require( __DIR__ . '/patterns/' . $name . '.php' );
35 }
36
37 /**
38 * Register default patterns and categories, potentially overriding ones that were already registered in Core.
39 *
40 * This can be removed when plugin support requires WordPress 5.5.0+, and patterns have been synced back to Core.
41 *
42 * @see https://core.trac.wordpress.org/ticket/50550
43 */
44 function gutenberg_register_block_patterns() {
45 $should_register_core_patterns = get_theme_support( 'core-block-patterns' );
46
47 if ( $should_register_core_patterns ) {
48 register_block_pattern( 'core/text-two-columns', gutenberg_load_block_pattern( 'text-two-columns' ) );
49 register_block_pattern( 'core/two-buttons', gutenberg_load_block_pattern( 'two-buttons' ) );
50 register_block_pattern( 'core/two-images', gutenberg_load_block_pattern( 'two-images' ) );
51 register_block_pattern( 'core/text-two-columns-with-images', gutenberg_load_block_pattern( 'text-two-columns-with-images' ) );
52 register_block_pattern( 'core/text-three-columns-buttons', gutenberg_load_block_pattern( 'text-three-columns-buttons' ) );
53 register_block_pattern( 'core/large-header', gutenberg_load_block_pattern( 'large-header' ) );
54 register_block_pattern( 'core/large-header-button', gutenberg_load_block_pattern( 'large-header-button' ) );
55 register_block_pattern( 'core/three-buttons', gutenberg_load_block_pattern( 'three-buttons' ) );
56 register_block_pattern( 'core/heading-paragraph', gutenberg_load_block_pattern( 'heading-paragraph' ) );
57 register_block_pattern( 'core/quote', gutenberg_load_block_pattern( 'quote' ) );
58 }
59
60 register_block_pattern_category( 'buttons', array( 'label' => _x( 'Buttons', 'Block pattern category', 'gutenberg' ) ) );
61 register_block_pattern_category( 'columns', array( 'label' => _x( 'Columns', 'Block pattern category', 'gutenberg' ) ) );
62 register_block_pattern_category( 'gallery', array( 'label' => _x( 'Gallery', 'Block pattern category', 'gutenberg' ) ) );
63 register_block_pattern_category( 'header', array( 'label' => _x( 'Headers', 'Block pattern category', 'gutenberg' ) ) );
64 register_block_pattern_category( 'text', array( 'label' => _x( 'Text', 'Block pattern category', 'gutenberg' ) ) );
65 }
66 add_action( 'init', 'gutenberg_register_block_patterns' );
67