源代码
File: wp-includes/functions.php
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 ( 'GMT+' === substr( $a['city'], 0, 4 ) && 'GMT+' === substr( $b['city'], 0, 4 ) ) {
return -1 * ( strnatcasecmp( $a['city'], $b['city'] ) );
}
if ( 'UTC' === $a['city'] ) {
if ( 'GMT+' === substr( $b['city'], 0, 4 ) ) {
return 1;
}
return -1;
}
if ( 'UTC' === $b['city'] ) {
if ( 'GMT+' === substr( $a['city'], 0, 4 ) ) {
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'] );
}
}
更新日志
Version | 描述 |
---|---|
2.9.0 | Introduced. |
在WordPress中,_wp_timezone_choice_usort_callback()
是一个内部函数,用于对时区选择进行排序。这个函数不是公开文档化的,通常用于WordPress后台设置中,特别是当用户需要选择他们的时区时。
这个函数是作为回调函数传递给 usort()
函数,用于比较两个时区名称,并按字母顺序对它们进行排序。
以下是 _wp_timezone_choice_usort_callback()
函数的基本用法:
usort( $timezones, '_wp_timezone_choice_usort_callback' );
参数解释如下:
$timezones
:一个包含时区名称的数组。
使用_wp_timezone_choice_usort_callback()
的步骤:
- 获取时区数组:首先,你需要获取一个包含时区名称的数组。
- 使用
usort()
和回调函数进行排序:然后,使用usort()
函数和_wp_timezone_choice_usort_callback()
作为回调来对时区数组进行排序。
下面是一个使用_wp_timezone_choice_usort_callback()
函数的例子:
<?php
// 获取所有时区
$all_timezones = timezone_identifiers_list();
// 过滤掉一些不需要的时区(可选)
$timezones = array_filter( $all_timezones, function( $tz ) {
return strpos( $tz, '/' ) !== false;
});
// 使用 _wp_timezone_choice_usort_callback() 对时区进行排序
usort( $timezones, '_wp_timezone_choice_usort_callback' );
// 输出排序后的时区列表
foreach ( $timezones as $timezone ) {
echo $timezone . '<br>';
}
?>
在这个例子中,我们首先获取了所有时区标识符,然后过滤掉了一些不需要的时区(这是一个可选步骤)。接着,我们使用 usort()
函数和 _wp_timezone_choice_usort_callback()
回调函数对时区数组进行了排序,并输出了排序后的时区列表。
需要注意的是,由于 _wp_timezone_choice_usort_callback()
是一个内部函数,它的使用并不推荐在公开的主题或插件代码中。这个函数可能在WordPress的未来版本中发生变化或被移除。如果你需要对时区进行排序,建议直接使用PHP内置的排序函数,如 sort()
或 asort()
,并结合适当的比较函数来达到相同的效果。
未经允许不得转载:445IT之家 » WordPress函数_wp_timezone_choice_usort_callback()用法