wp-includes/theme.php:962Validates the theme requirements for WordPress version and PHP version.
$stylesheetstringtrue|WP_ErrorOne hook fires while validate_theme_requirements() runs, in this order:
Filters the theme requirement validation response.
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' ) : '', ); $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' ) ) ); } /** * Filters the theme requirement validation response. * * If a theme fails due to a Core-provided validation (incompatible WP, PHP versions), this * filter will not fire. A WP_Error response will already be returned. * * This filter is intended to add additional validation steps by site administrators. * * @since 6.9.0 * * @param bool|WP_Error $met_requirements True if the theme meets requirements, WP_Error if not. * @param string $stylesheet Directory name for the theme. */ return apply_filters( 'validate_theme_requirements', true, $stylesheet );}Introduced in 5.5.0. Unchanged from 6.7.7 through 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
src/wp-includes/theme.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.