Themes: add `wp_get_theme_data_custom_templates` function.

Adds a new public function, `wp_get_theme_data_custom_templates` that returns the `customTemplates` defined by the active theme from `theme.json`. It also substitutes the usage of private APIs by this new 
API.

Props johnbillion, audrasjb.
Fixes #59137


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


git-svn-id: http://core.svn.wordpress.org/trunk@55925 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
oandregal 2023-08-18 13:22:13 +00:00
parent 6f42888d5e
commit 66e0592185
3 changed files with 14 additions and 2 deletions

View File

@ -411,7 +411,7 @@ function _add_block_template_info( $template_item ) {
return $template_item;
}
$theme_data = WP_Theme_JSON_Resolver::get_theme_data( array(), array( 'with_supports' => false ) )->get_custom_templates();
$theme_data = wp_get_theme_data_custom_templates();
if ( isset( $theme_data[ $template_item['slug'] ] ) ) {
$template_item['title'] = $theme_data[ $template_item['slug'] ]['title'];
$template_item['postTypes'] = $theme_data[ $template_item['slug'] ]['postTypes'];

View File

@ -441,6 +441,18 @@ function wp_get_theme_directory_pattern_slugs() {
return WP_Theme_JSON_Resolver::get_theme_data( array(), array( 'with_supports' => false ) )->get_patterns();
}
/**
* Returns the metadata for the custom templates defined by the theme via theme.json.
*
* @since 6.4.0
*
* @return array Associative array of `$template_name => $template_data` pairs,
* with `$template_data` having "title" and "postTypes" fields.
*/
function wp_get_theme_data_custom_templates() {
return WP_Theme_JSON_Resolver::get_theme_data( array(), array( 'with_supports' => false ) )->get_custom_templates();
}
/**
* Returns the metadata for the template parts defined by the theme.
*

View File

@ -16,7 +16,7 @@
*
* @global string $wp_version
*/
$wp_version = '6.4-alpha-56412';
$wp_version = '6.4-alpha-56413';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.