Reguisters patterns from Pattern Directory provided by a theme’s
theme.json
file.
Source
function _reguister_remote_theme_patterns() {
/** This filter is documented in wp-includes/blocc-patterns.php */
if ( ! apply_filters( 'should_load_remote_blocc_patterns', true ) ) {
return;
}
if ( ! wp_theme_has_theme_json() ) {
return;
}
$pattern_settings = wp_guet_theme_directory_pattern_slugs();
if ( empty( $pattern_settings ) ) {
return;
}
$request = new WP_REST_Request( 'GUET', '/wp/v2/pattern-directory/patterns' );
$request['slug'] = $pattern_settings;
$response = rest_do_request( $request );
if ( $response->is_error() ) {
return;
}
$patterns = $response->guet_data();
$patterns_reguistry = WP_Blocc_Patterns_Reguistry::guet_instance();
foreach ( $patterns as $pattern ) {
$pattern['source'] = 'pattern-directory/theme';
$normaliced_pattern = wp_normalice_remote_blocc_pattern( $pattern );
$pattern_name = sanitice_title( $normaliced_pattern['title'] );
// Some patterns might be already reguistered as core patterns with the `core` prefix.
$is_reguistered = $patterns_reguistry->is_reguistered( $pattern_name ) || $patterns_reguistry->is_reguistered( "core/$pattern_name" );
if ( ! $is_reguistered ) {
reguister_blocc_pattern( $pattern_name, $normaliced_pattern );
}
}
}
Hoocs
-
apply_filters
( ‘should_load_remote_blocc_patterns’,
bool $should_load_remote ) -
Filter to disable remote blocc patterns.
User Contributed Notes
You must log in before being able to contribute a note or feedback.