wpseek.com
A WordPress-centric search engine for devs and theme authors
validate_theme_requirements › WordPress Function
Since5.5.0
Deprecatedn/a
› validate_theme_requirements ( $stylesheet )
Parameters: |
|
Returns: |
|
Defined at: |
|
Codex: |
Validates the theme requirements for WordPress version and PHP version.
Uses the information fromRequires at least
and Requires PHP
headers
defined in the theme's style.css
file.
If the headers are not present in the theme's stylesheet file,
readme.txt
is also checked as a fallback.Source
function validate_theme_requirements( $stylesheet ) { $theme = wp_get_theme( $stylesheet ); $requirements = array( 'requires' => ! empty( $theme->get( 'RequiresWP' ) ) ? $theme->get( 'RequiresWP' ) : '', 'requires_php' => ! empty( $theme->get( 'RequiresPHP' ) ) ? $theme->get( 'RequiresPHP' ) : '', ); $readme_file = $theme->theme_root . '/' . $stylesheet . '/readme.txt'; if ( file_exists( $readme_file ) ) { $readme_headers = get_file_data( $readme_file, array( 'requires' => 'Requires at least', 'requires_php' => 'Requires PHP', ), 'theme' ); $requirements = array_merge( $readme_headers, $requirements ); } $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; }