validate_theme_requirements( string $stylesheet )
Validates the theme requirements for WordPress version and PHP version.
Description
Uses the information from Requires at least
and Requires PHP
headers defined in the theme’s style.css
file.
Parameters
- $stylesheet
-
(string) (Required) Directory name for the theme.
Return
(true|WP_Error) True if requirements are met, WP_Error on failure.
Source
File: wp-includes/theme.php
function validate_theme_requirements( $stylesheet ) { $theme = wp_get_theme( $stylesheet ); // If the theme is a Full Site Editing theme, check for the presence of the Gutenberg plugin. $theme_tags = $theme->get( 'Tags' ); if ( ! empty( $theme_tags ) && in_array( 'full-site-editing', $theme_tags, true ) && ! function_exists( 'gutenberg_is_fse_theme' ) ) { return new WP_Error( 'theme_requires_gutenberg_plugin', sprintf( /* translators: %s: Theme name. */ _x( '<strong>Error:</strong> This theme (%s) uses Full Site Editing, which requires the Gutenberg plugin to be activated.', 'theme' ), $theme->display( 'Name' ) ) ); } $requirements = array( 'requires' => ! empty( $theme->get( 'RequiresWP' ) ) ? $theme->get( 'RequiresWP' ) : '', 'requires_php' => ! empty( $theme->get( 'RequiresPHP' ) ) ? $theme->get( 'RequiresPHP' ) : '', ); $compatible_wp = is_wp_version_compatible( $requirements['requires'] ); $compatible_php = is_php_version_compatible( $requirements['requires_php'] ); if ( ! $compatible_wp && ! $compatible_php ) { return new WP_Error( 'theme_wp_php_incompatible', sprintf( /* translators: %s: Theme name. */ _x( '<strong>Error:</strong> Current WordPress and PHP versions do not meet minimum requirements for %s.', 'theme' ), $theme->display( 'Name' ) ) ); } elseif ( ! $compatible_php ) { return new WP_Error( 'theme_php_incompatible', sprintf( /* translators: %s: Theme name. */ _x( '<strong>Error:</strong> Current PHP version does not meet minimum requirements for %s.', 'theme' ), $theme->display( 'Name' ) ) ); } elseif ( ! $compatible_wp ) { return new WP_Error( 'theme_wp_incompatible', sprintf( /* translators: %s: Theme name. */ _x( '<strong>Error:</strong> Current WordPress version does not meet minimum requirements for %s.', 'theme' ), $theme->display( 'Name' ) ) ); } return true; }
Changelog
Version | Description |
---|---|
5.8.0 | Removed support for using readme.txt as a fallback. |
5.5.0 | Introduced. |
© 2003–2021 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/validate_theme_requirements