diff --git a/lib/templates.php b/lib/templates.php index d99d146e9eff4..903cdb7093b2b 100644 --- a/lib/templates.php +++ b/lib/templates.php @@ -374,6 +374,20 @@ function filter_rest_prepare_add_wp_theme_slug_and_file_based( $response ) { $file_based = in_array( '_wp_file_based', $wp_theme_slugs, true ); $response->data['file_based'] = $file_based; + $response->data['original_file_exists'] = false; + $template_files = array_unique( + array_merge( + _gutenberg_get_template_paths( get_stylesheet_directory() . DIRECTORY_SEPARATOR . 'block-templates' ), + _gutenberg_get_template_paths( get_template_directory() . DIRECTORY_SEPARATOR . 'block-templates' ) + ) + ); + foreach( $template_files as $template_file ) { + if ( basename( $template_file, '.html' ) === $response->data['slug'] ) { + $response->data['original_file_exists'] = true; + break; + } + } + $theme_slug = array_values( array_filter( $wp_theme_slugs, diff --git a/packages/edit-site/src/utils/is-template-revertable.js b/packages/edit-site/src/utils/is-template-revertable.js index 4bb8c6f6e27e9..02c1c60cf2aab 100644 --- a/packages/edit-site/src/utils/is-template-revertable.js +++ b/packages/edit-site/src/utils/is-template-revertable.js @@ -13,6 +13,7 @@ export default function isTemplateRevertable( template, currentTheme ) { 'auto-draft' !== template.status && /* eslint-disable camelcase */ template?.file_based && + template?.original_file_exists && currentTheme === template?.wp_theme_slug /* eslint-enable camelcase */ );