函数文档

is_wp_version_compatible()

💡 云策文档标注

概述

is_wp_version_compatible() 函数用于检查当前 WordPress 版本是否与指定要求版本兼容。它处理版本字符串,支持测试环境,并返回布尔值。

关键要点

  • 函数接受一个字符串参数 $required,表示所需的最低 WordPress 版本。
  • 返回布尔值:如果 $required 为空或当前版本大于等于要求版本,则返回 true;否则返回 false。
  • 在测试环境中(如 WP_RUN_CORE_TESTS 定义),函数使用全局变量 $_wp_tests_wp_version 获取版本号。
  • 函数会去除版本号中的后缀(如 -alpha、-RC、-beta、-src),并处理以 .0 结尾的多点版本字符串。
  • 该函数在 WordPress 5.2.0 版本中引入,广泛用于主题和插件的兼容性验证。

代码示例

function is_wp_version_compatible( $required ) {
    if (
        defined( 'WP_RUN_CORE_TESTS' )
        && WP_RUN_CORE_TESTS
        && isset( $GLOBALS['_wp_tests_wp_version'] )
    ) {
        $wp_version = $GLOBALS['_wp_tests_wp_version'];
    } else {
        $wp_version = wp_get_wp_version();
    }

    // Strip off any -alpha, -RC, -beta, -src suffixes.
    list( $version ) = explode( '-', $wp_version );

    if ( is_string( $required ) ) {
        $trimmed = trim( $required );

        if ( substr_count( $trimmed, '.' ) > 1 && str_ends_with( $trimmed, '.0' ) ) {
            $required = substr( $trimmed, 0, -2 );
        }
    }

    return empty( $required ) || version_compare( $version, $required, '>=' );
}

📄 原文内容

Checks compatibility with the current WordPress version.

Parameters

$requiredstringrequired
Minimum required WordPress version.

Return

bool True if required version is compatible or empty, false if not.

Source

function is_wp_version_compatible( $required ) {
	if (
		defined( 'WP_RUN_CORE_TESTS' )
		&& WP_RUN_CORE_TESTS
		&& isset( $GLOBALS['_wp_tests_wp_version'] )
	) {
		$wp_version = $GLOBALS['_wp_tests_wp_version'];
	} else {
		$wp_version = wp_get_wp_version();
	}

	// Strip off any -alpha, -RC, -beta, -src suffixes.
	list( $version ) = explode( '-', $wp_version );

	if ( is_string( $required ) ) {
		$trimmed = trim( $required );

		if ( substr_count( $trimmed, '.' ) > 1 && str_ends_with( $trimmed, '.0' ) ) {
			$required = substr( $trimmed, 0, -2 );
		}
	}

	return empty( $required ) || version_compare( $version, $required, '>=' );
}

Changelog

Version Description
5.2.0 Introduced.