From 9110074a208aba86acf0f3621ecf05036ecbb3ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=83=C2=A9?= Date: Fri, 18 Aug 2023 13:20:56 +0000 Subject: [PATCH] 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 git-svn-id: https://develop.svn.wordpress.org/trunk@56413 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/block-template-utils.php | 2 +- src/wp-includes/global-styles-and-settings.php | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/wp-includes/block-template-utils.php b/src/wp-includes/block-template-utils.php index 88bda858f0..438556a7b9 100644 --- a/src/wp-includes/block-template-utils.php +++ b/src/wp-includes/block-template-utils.php @@ -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']; diff --git a/src/wp-includes/global-styles-and-settings.php b/src/wp-includes/global-styles-and-settings.php index e531e7e704..6ff5673318 100644 --- a/src/wp-includes/global-styles-and-settings.php +++ b/src/wp-includes/global-styles-and-settings.php @@ -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. *