Функция wp_timezone_choice()
создает удобный список временных зон в формате <option>
, который можно использовать в <select>
. Эта функция позволяет пользователю выбрать нужную временную зону из стандартизированного списка, поддерживая удобный интерфейс.
wp_timezone_choice( string $selected_zone, string $locale = null ): string
Функция формирует список временных зон на основе PHP-функции timezone_identifiers_list()
, что позволяет использовать полный перечень всех доступных временных зон. Полезна при создании форм, где пользователю предлагается выбрать свою временную зону.
Параметры
- $selected_zone (string) — Определяет временную зону, которая будет выбрана по умолчанию.
- $locale (string) — Локаль языка для отображения списка временных зон. Если не указано, используется текущая локаль сайта. (Доступно с WP 4.7).
Возвращаемое значение
- string — HTML-строка, содержащая список тегов
<option>
для вставки в элемент<select>
.
Пример 1: Добавление списка временных зон в форму
Создадим форму с выпадающим списком временных зон. При выборе пользователя автоматически будет выделяться временная зона UTC+0
.
<select id="timezone_string" name="timezone_string" aria-describedby="timezone-description">
<?php
$tzstring = 'UTC+0'; // Выбранная по умолчанию временная зона
echo wp_timezone_choice( $tzstring );
?>
</select>
Вывод будет содержать все доступные временные зоны, и UTC+0
будет выделена.
Пример 2: Формирование списка временных зон для определенной локали
Функция wp_timezone_choice()
позволяет отображать список временных зон в конкретной локали, если это необходимо. Например, для русскоязычной версии:
<select id="timezone_string" name="timezone_string" aria-describedby="timezone-description">
<?php
$selected_zone = 'Europe/Moscow'; // Выбранная зона по умолчанию
$locale = 'ru_RU'; // Установка локали
echo wp_timezone_choice( $selected_zone, $locale );
?>
</select>
Это выведет список временных зон, локализованный для русского языка, с выделением временной зоны Europe/Moscow
.
Пример 3: Динамическое определение временной зоны для пользователя
Иногда временная зона пользователя может быть определена на основе настроек его профиля или геолокации:
$user_timezone = get_user_meta( $user_id, 'timezone', true ) ?: 'UTC';
echo '<select name="timezone_string">';
echo wp_timezone_choice( $user_timezone );
echo '</select>';
Здесь временная зона берется из пользовательских метаданных, а если данные отсутствуют, по умолчанию используется UTC
.
Заключение
Функция wp_timezone_choice()
помогает создать удобный выбор временной зоны, поддерживающий стандарты WordPress и PHP, с возможностью локализации списка. Это делает ее идеальной для использования в настройках профиля, пользовательских панелях или формах настройки сайта.