validate_theme_requirements()WP 5.5.0

Validates the theme requirements for WordPress version and PHP version.

Uses the information from Requires at least and Requires PHP headers defined in the theme's style.css file.

Хуки из функции

Возвращает

true|WP_Error. True if requirements are met, WP_Error on failure.

Использование

validate_theme_requirements( $stylesheet );
$stylesheet(строка) (обязательный)
Directory name for the theme.

Список изменений

С версии 5.5.0 Введена.
С версии 5.8.0 Removed support for using readme.txt as a fallback.

Код validate_theme_requirements() WP 6.9

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 );
}