_wp_timezone_choice_usort_callback() – Sort-helper for timezones.

You appear to be a bot. Output may be restricted

Description

Sort-helper for timezones.

Usage

$int = _wp_timezone_choice_usort_callback( $a, $b );

Parameters

$a
( array ) required
$b
( array ) required

Returns

int

Source

File name: wordpress/wp-includes/functions.php


Lines:

1 to 38 of 38
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'] );
  }
}
 

 View on GitHub View on Trac