Blockbase: Optionally remove inherited style variations from child themes (#6996)
* Blockbase: Remove style variations from child themes Co-authored-by: Jason Crist <jcrist@pbking.com>
This commit is contained in:
parent
fb7e01098b
commit
4b07c828a2
5 changed files with 38 additions and 2 deletions
|
@ -103,6 +103,7 @@ if ( class_exists( 'WP_Theme_JSON_Resolver_Gutenberg' ) ) {
|
|||
}
|
||||
|
||||
require get_template_directory() . '/inc/fonts/custom-fonts.php';
|
||||
require get_template_directory() . '/inc/rest-api.php';
|
||||
|
||||
|
||||
// Force menus to reload
|
||||
|
|
32
blockbase/inc/rest-api.php
Normal file
32
blockbase/inc/rest-api.php
Normal file
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Removes the style variations of Blockbase child themes inherited by the parent theme.
|
||||
*
|
||||
* @param WP_REST_Response|WP_HTTP_Response|WP_Error|mixed $response Result to send to the client.
|
||||
* @param array $handler Route handler used for the request.
|
||||
*
|
||||
* @return WP_REST_Response|WP_HTTP_Response|WP_Error|mixed Result to send to the client.
|
||||
*/
|
||||
function blockbase_remove_style_variations_from_child_themes( $response, $handler ) {
|
||||
if ( ! isset( $handler['callback'] ) || ! is_array( $handler['callback'] ) ) {
|
||||
return $response;
|
||||
}
|
||||
|
||||
$handler_class = isset( $handler['callback'][0] ) ? $handler['callback'][0] : null;
|
||||
$handler_method = isset( $handler['callback'][1] ) ? $handler['callback'][1] : null;
|
||||
$opt_out = wp_get_global_settings( array( 'custom', 'optOutOfParentStyleVariations' ) );
|
||||
|
||||
/*
|
||||
* Prevents Blockbase child themes from being considered child themes in the
|
||||
* `wp/v2/global-styles/themes/:theme/variations` API endpoint, so they don't
|
||||
* inherit the style variations from the parent theme.
|
||||
*/
|
||||
if ( $opt_out && is_a( $handler_class, 'WP_REST_Global_Styles_Controller' ) && 'get_theme_items' === $handler_method ) {
|
||||
add_filter( 'template_directory', 'get_stylesheet_directory' );
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
add_filter( 'rest_request_before_callbacks', 'blockbase_remove_style_variations_from_child_themes', 10, 2 );
|
|
@ -93,6 +93,7 @@
|
|||
]
|
||||
},
|
||||
"custom": {
|
||||
"optOutOfParentStyleVariations": false,
|
||||
"alignment": {
|
||||
"alignedMaxWidth": "50%"
|
||||
},
|
||||
|
|
|
@ -24,7 +24,8 @@
|
|||
"primary": "var(--wp--preset--color--foreground)",
|
||||
"secondary": "var(--wp--preset--color--foreground)",
|
||||
"tertiary": "var(--wp--preset--color--background)"
|
||||
}
|
||||
},
|
||||
"optOutOfParentStyleVariations": true
|
||||
}
|
||||
},
|
||||
"styles": {
|
||||
|
|
|
@ -24,7 +24,8 @@
|
|||
"primary": "var(--wp--preset--color--foreground)",
|
||||
"secondary": "var(--wp--preset--color--foreground)",
|
||||
"tertiary": "var(--wp--preset--color--background)"
|
||||
}
|
||||
},
|
||||
"optOutOfParentStyleVariations": true
|
||||
}
|
||||
},
|
||||
"styles": {
|
||||
|
|
Loading…
Reference in a new issue