_wp_timezone_choice_usort_callback()WP 2.9.0

Sort-helper for timezones.

Внутренняя функция — эта функция рассчитана на использование самим ядром. Не рекомендуется использовать эту функцию в своем коде.

Хуков нет.

Возвращает

int.

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

_wp_timezone_choice_usort_callback( $a, $b );
$a(массив) (обязательный)
-
$b(массив) (обязательный)
-

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

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

Код _wp_timezone_choice_usort_callback() WP 6.5.2

function _wp_timezone_choice_usort_callback( $a, $b ) {
	// Don't use translated versions of Etc.
	if ( 'Etc' === $a['continent'] && 'Etc' === $b['continent'] ) {
		// Make the order of these more like the old dropdown.
		if ( str_starts_with( $a['city'], 'GMT+' ) && str_starts_with( $b['city'], 'GMT+' ) ) {
			return -1 * ( strnatcasecmp( $a['city'], $b['city'] ) );
		}

		if ( 'UTC' === $a['city'] ) {
			if ( str_starts_with( $b['city'], 'GMT+' ) ) {
				return 1;
			}

			return -1;
		}

		if ( 'UTC' === $b['city'] ) {
			if ( str_starts_with( $a['city'], 'GMT+' ) ) {
				return -1;
			}

			return 1;
		}

		return strnatcasecmp( $a['city'], $b['city'] );
	}

	if ( $a['t_continent'] === $b['t_continent'] ) {
		if ( $a['t_city'] === $b['t_city'] ) {
			return strnatcasecmp( $a['t_subcity'], $b['t_subcity'] );
		}

		return strnatcasecmp( $a['t_city'], $b['t_city'] );
	} else {
		// Force Etc to the bottom of the list.
		if ( 'Etc' === $a['continent'] ) {
			return 1;
		}

		if ( 'Etc' === $b['continent'] ) {
			return -1;
		}

		return strnatcasecmp( $a['t_continent'], $b['t_continent'] );
	}
}