Skip to content

Commit

Permalink
Block Editor: Add support for the pattern directory.
Browse files Browse the repository at this point in the history
Add an endpoint for fetching block patterns from WordPress.org, and load the block patterns from this new API. Remove the block patterns that have already been moved to WordPress.org/patterns.

Props ryelle, iandunn, youknowriad, timothyblynjacobs.
Fixes #53246.


Built from https://develop.svn.wordpress.org/trunk@51021


git-svn-id: http://core.svn.wordpress.org/trunk@50630 1a063a9b-81f0-0310-95a4-ce76da25c4cd
  • Loading branch information
ryelle committed May 26, 2021
1 parent 072e83a commit 56ca42b
Show file tree
Hide file tree
Showing 21 changed files with 344 additions and 520 deletions.
55 changes: 40 additions & 15 deletions wp-includes/block-patterns.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,6 @@ function _register_core_block_patterns_and_categories() {

if ( $should_register_core_patterns ) {
$core_block_patterns = array(
'media-text-nature',
'two-images-gallery',
'three-columns-media-text',
'quote',
'large-header-left',
'large-header-text-button',
'media-text-art',
'text-two-columns-title',
'three-columns-text',
'text-two-columns-title-offset',
'heading',
'three-images-gallery',
'text-two-columns',
'media-text-arquitecture',
'two-buttons',
'query-standard-posts',
'query-medium-posts',
'query-small-posts',
Expand All @@ -58,3 +43,43 @@ function _register_core_block_patterns_and_categories() {
register_block_pattern_category( 'text', array( 'label' => _x( 'Text', 'Block pattern category' ) ) );
register_block_pattern_category( 'query', array( 'label' => __( 'Query', 'Block pattern category' ) ) );
}

/**
* Import patterns from wordpress.org/patterns.
*/
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 ) {
$patterns = get_transient( 'wp_remote_block_patterns' );
if ( ! $patterns ) {
$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();
set_transient( 'wp_remote_block_patterns', $patterns, HOUR_IN_SECONDS );
}

foreach ( $patterns as $settings ) {
$pattern_name = 'core/' . sanitize_title( $settings['title'] );
register_block_pattern( $pattern_name, (array) $settings );
}
}
}
16 changes: 0 additions & 16 deletions wp-includes/block-patterns/heading.php

This file was deleted.

33 changes: 0 additions & 33 deletions wp-includes/block-patterns/large-header-left.php

This file was deleted.

35 changes: 0 additions & 35 deletions wp-includes/block-patterns/large-header-text-button.php

This file was deleted.

21 changes: 0 additions & 21 deletions wp-includes/block-patterns/media-text-arquitecture.php

This file was deleted.

21 changes: 0 additions & 21 deletions wp-includes/block-patterns/media-text-art.php

This file was deleted.

28 changes: 0 additions & 28 deletions wp-includes/block-patterns/media-text-nature.php

This file was deleted.

30 changes: 0 additions & 30 deletions wp-includes/block-patterns/quote.php

This file was deleted.

53 changes: 0 additions & 53 deletions wp-includes/block-patterns/text-two-columns-title-offset.php

This file was deleted.

31 changes: 0 additions & 31 deletions wp-includes/block-patterns/text-two-columns-title.php

This file was deleted.

Loading

0 comments on commit 56ca42b

Please sign in to comment.