_load_remote_block_patterns

The timeline below displays how wordpress function _load_remote_block_patterns has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.3

/**
 * Register Core's official patterns from wordpress.org/patterns.
 *
 * @since 5.8.0
 * @since 5.9.0 The $current_screen argument was removed.
 * @since 6.2.0 Normalize the pattern from the API (snake_case) to the
 *              format expected by `register_block_pattern` (camelCase).
 * @since 6.3.0 Add 'pattern-directory/core' to the pattern's 'source'.
 *
 * @param WP_Screen $deprecated Unused. Formerly the screen that the current request was triggered from.
 */
function _load_remote_block_patterns($deprecated = null)
{
    if (!empty($deprecated)) {
        _deprecated_argument(__FUNCTION__, '5.9.0');
        $current_screen = $deprecated;
        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 $pattern) {
            $pattern['source'] = 'pattern-directory/core';
            $normalized_pattern = wp_normalize_remote_block_pattern($pattern);
            $pattern_name = 'core/' . sanitize_title($normalized_pattern['title']);
            register_block_pattern($pattern_name, $normalized_pattern);
        }
    }
}

WordPress Version: 6.2

/**
 * Register Core's official patterns from wordpress.org/patterns.
 *
 * @since 5.8.0
 * @since 5.9.0 The $current_screen argument was removed.
 * @since 6.2.0 Normalize the pattern from the API (snake_case) to the
 *              format expected by `register_block_pattern` (camelCase).
 *
 * @param WP_Screen $deprecated Unused. Formerly the screen that the current request was triggered from.
 */
function _load_remote_block_patterns($deprecated = null)
{
    if (!empty($deprecated)) {
        _deprecated_argument(__FUNCTION__, '5.9.0');
        $current_screen = $deprecated;
        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 $pattern) {
            $normalized_pattern = wp_normalize_remote_block_pattern($pattern);
            $pattern_name = 'core/' . sanitize_title($normalized_pattern['title']);
            register_block_pattern($pattern_name, $normalized_pattern);
        }
    }
}

WordPress Version: 5.9

/**
 * Register Core's official patterns from wordpress.org/patterns.
 *
 * @since 5.8.0
 * @since 5.9.0 The $current_screen argument was removed.
 *
 * @param WP_Screen $deprecated Unused. Formerly the screen that the current request was triggered from.
 */
function _load_remote_block_patterns($deprecated = null)
{
    if (!empty($deprecated)) {
        _deprecated_argument(__FUNCTION__, '5.9.0');
        $current_screen = $deprecated;
        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);
        }
    }
}

WordPress Version: 5.8

/**
 * 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);
        }
    }
}