_load_remote_featured_patterns

The timeline below displays how wordpress function _load_remote_featured_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 `Featured` (category) patterns from wordpress.org/patterns.
 *
 * @since 5.9.0
 * @since 6.2.0 Normalized the pattern from the API (snake_case) to the
 *              format expected by `register_block_pattern()` (camelCase).
 * @since 6.3.0 Add 'pattern-directory/featured' to the pattern's 'source'.
 */
function _load_remote_featured_patterns()
{
    $supports_core_patterns = get_theme_support('core-block-patterns');
    /** This filter is documented in wp-includes/block-patterns.php */
    $should_load_remote = apply_filters('should_load_remote_block_patterns', true);
    if (!$should_load_remote || !$supports_core_patterns) {
        return;
    }
    $request = new WP_REST_Request('GET', '/wp/v2/pattern-directory/patterns');
    $featured_cat_id = 26;
    // This is the `Featured` category id from pattern directory.
    $request->set_param('category', $featured_cat_id);
    $response = rest_do_request($request);
    if ($response->is_error()) {
        return;
    }
    $patterns = $response->get_data();
    $registry = WP_Block_Patterns_Registry::get_instance();
    foreach ($patterns as $pattern) {
        $pattern['source'] = 'pattern-directory/featured';
        $normalized_pattern = wp_normalize_remote_block_pattern($pattern);
        $pattern_name = sanitize_title($normalized_pattern['title']);
        // Some patterns might be already registered as core patterns with the `core` prefix.
        $is_registered = $registry->is_registered($pattern_name) || $registry->is_registered("core/{$pattern_name}");
        if (!$is_registered) {
            register_block_pattern($pattern_name, $normalized_pattern);
        }
    }
}

WordPress Version: 6.2

/**
 * Register `Featured` (category) patterns from wordpress.org/patterns.
 *
 * @since 5.9.0
 * @since 6.2.0 Normalized the pattern from the API (snake_case) to the
 *              format expected by `register_block_pattern()` (camelCase).
 */
function _load_remote_featured_patterns()
{
    $supports_core_patterns = get_theme_support('core-block-patterns');
    /** This filter is documented in wp-includes/block-patterns.php */
    $should_load_remote = apply_filters('should_load_remote_block_patterns', true);
    if (!$should_load_remote || !$supports_core_patterns) {
        return;
    }
    $request = new WP_REST_Request('GET', '/wp/v2/pattern-directory/patterns');
    $featured_cat_id = 26;
    // This is the `Featured` category id from pattern directory.
    $request->set_param('category', $featured_cat_id);
    $response = rest_do_request($request);
    if ($response->is_error()) {
        return;
    }
    $patterns = $response->get_data();
    $registry = WP_Block_Patterns_Registry::get_instance();
    foreach ($patterns as $pattern) {
        $normalized_pattern = wp_normalize_remote_block_pattern($pattern);
        $pattern_name = sanitize_title($normalized_pattern['title']);
        // Some patterns might be already registered as core patterns with the `core` prefix.
        $is_registered = $registry->is_registered($pattern_name) || $registry->is_registered("core/{$pattern_name}");
        if (!$is_registered) {
            register_block_pattern($pattern_name, $normalized_pattern);
        }
    }
}

WordPress Version: 6.1

/**
 * Register `Featured` (category) patterns from wordpress.org/patterns.
 *
 * @since 5.9.0
 */
function _load_remote_featured_patterns()
{
    $supports_core_patterns = get_theme_support('core-block-patterns');
    /** This filter is documented in wp-includes/block-patterns.php */
    $should_load_remote = apply_filters('should_load_remote_block_patterns', true);
    if (!$should_load_remote || !$supports_core_patterns) {
        return;
    }
    $request = new WP_REST_Request('GET', '/wp/v2/pattern-directory/patterns');
    $featured_cat_id = 26;
    // This is the `Featured` category id from pattern directory.
    $request->set_param('category', $featured_cat_id);
    $response = rest_do_request($request);
    if ($response->is_error()) {
        return;
    }
    $patterns = $response->get_data();
    foreach ($patterns as $pattern) {
        $pattern_name = sanitize_title($pattern['title']);
        $registry = WP_Block_Patterns_Registry::get_instance();
        // Some patterns might be already registered as core patterns with the `core` prefix.
        $is_registered = $registry->is_registered($pattern_name) || $registry->is_registered("core/{$pattern_name}");
        if (!$is_registered) {
            register_block_pattern($pattern_name, (array) $pattern);
        }
    }
}

WordPress Version: 5.9

/**
 * Register `Featured` (category) patterns from wordpress.org/patterns.
 *
 * @since 5.9.0
 */
function _load_remote_featured_patterns()
{
    $supports_core_patterns = get_theme_support('core-block-patterns');
    /** This filter is documented in wp-includes/block-patterns.php */
    $should_load_remote = apply_filters('should_load_remote_block_patterns', true);
    if (!$should_load_remote || !$supports_core_patterns) {
        return;
    }
    if (!WP_Block_Pattern_Categories_Registry::get_instance()->is_registered('featured')) {
        register_block_pattern_category('featured', array('label' => __('Featured')));
    }
    $request = new WP_REST_Request('GET', '/wp/v2/pattern-directory/patterns');
    $featured_cat_id = 26;
    // This is the `Featured` category id from pattern directory.
    $request->set_param('category', $featured_cat_id);
    $response = rest_do_request($request);
    if ($response->is_error()) {
        return;
    }
    $patterns = $response->get_data();
    foreach ($patterns as $pattern) {
        $pattern_name = sanitize_title($pattern['title']);
        $registry = WP_Block_Patterns_Registry::get_instance();
        // Some patterns might be already registerd as `core patterns with the `core` prefix.
        $is_registered = $registry->is_registered($pattern_name) || $registry->is_registered("core/{$pattern_name}");
        if (!$is_registered) {
            register_block_pattern($pattern_name, (array) $pattern);
        }
    }
}