| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- <?php
- /**
- * Register the block patterns and block patterns categories
- *
- * @package WordPress
- * @since 5.5.0
- */
- 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(
- 'query-standard-posts',
- 'query-medium-posts',
- 'query-small-posts',
- 'query-grid-posts',
- 'query-large-title-posts',
- 'query-offset-posts',
- 'social-links-shared-background-color',
- );
- 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' ) ) );
- register_block_pattern_category( 'columns', array( 'label' => _x( 'Columns', 'Block pattern category' ) ) );
- register_block_pattern_category( 'gallery', array( 'label' => _x( 'Gallery', 'Block pattern category' ) ) );
- register_block_pattern_category( 'header', array( 'label' => _x( 'Headers', 'Block pattern category' ) ) );
- register_block_pattern_category( 'text', array( 'label' => _x( 'Text', 'Block pattern category' ) ) );
- register_block_pattern_category( 'query', array( 'label' => _x( 'Query', 'Block pattern category' ) ) );
- }
- /**
- * Register Core's official patterns from wordpress.org/patterns.
- *
- * @since 5.8.0
- *
- * @param WP_Screen $current_screen The screen that the current request was triggered from.
- */
- function _load_remote_block_patterns( $current_screen ) {
- if ( ! $current_screen->is_block_editor ) {
- return;
- }
- $supports_core_patterns = get_theme_support( 'core-block-patterns' );
- /**
- * Filter to disable remote block patterns.
- *
- * @since 5.8.0
- *
- * @param bool $should_load_remote
- */
- $should_load_remote = apply_filters( 'should_load_remote_block_patterns', true );
- if ( $supports_core_patterns && $should_load_remote ) {
- $request = new WP_REST_Request( 'GET', '/wp/v2/pattern-directory/patterns' );
- $core_keyword_id = 11; // 11 is the ID for "core".
- $request->set_param( 'keyword', $core_keyword_id );
- $response = rest_do_request( $request );
- if ( $response->is_error() ) {
- return;
- }
- $patterns = $response->get_data();
- foreach ( $patterns as $settings ) {
- $pattern_name = 'core/' . sanitize_title( $settings['title'] );
- register_block_pattern( $pattern_name, (array) $settings );
- }
- }
- }
|