is_wp_version_compatible()WP 5.2.0

Сравнивает переданную версию WordPress с установленной версией WordPress.

Работает на основе функции version_compare() с условием >=.

Смотрите также аналогичное сравнение версий PHP: is_php_version_compatible().

Основа для: validate_plugin_requirements()
1 раз — 0.000001 сек (скорость света) | 50000 раз — 0.03 сек (скорость света) | PHP 7.2.16, WP 5.2

Хуков нет.

Возвращает

true|false. True - указанная версия WordPress совместима или версия для проверки совместимости не указана ('', false и т.д.). False - указанная версия не совместима.

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

is_wp_version_compatible( $required );
$required(строка) (обязательный)
Минимальная требуемая версия WordPress.

Примеры

0

#1 Примеры результатов проверки

get_bloginfo( 'version' ); // 5.2

is_wp_version_compatible( '4.9' );  // true
is_wp_version_compatible( '5.2' );  // true
is_wp_version_compatible( '5.2.1' ) // false
is_wp_version_compatible( '5.5' );  // false
0

#2 Выведем сообщение об устаревшей версии WordPress

Пусть мы написали плагин, который будет работать только на WordPress 5.2 и выше. Тогда надо предусмотреть, чтобы основной код плагина не запускался, если версия установленного WordPress ниже.

Допустим на сервере пользователя установлен WP 4.9, тогда:

<?php

if ( is_wp_version_compatible( '5.2' ) ) {
	require_once __DIR__ . '/main-file-plugin.php';
}
else {
	add_action( 'admin_notices', 'admin_php_version__error' );
}

function admin_php_version__error() {
	?>
	<div class="notice notice-error">
		<p>Для работы плагина требуется WordPress не ниже версии 5.2.</p>
	</div>
	<?php
}

Код выше неполный и показывает лишь принцип того, как должно работать уведомление.

Заметки

  • Global. Строка. $_wp_tests_wp_version The WordPress version string. Used only in Core tests.

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

С версии 5.2.0 Введена.

Код is_wp_version_compatible() WP 6.7.2

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, '>=' );
}