Обзор
Поле «дата» позволяет выбрать дату с помощью всплывающего окна на jquery. Это поле может использоваться для указания дат в вашей теме. Например, можно указать начальную и конечную даты.
Обратите внимание, что в предыдущих версиях ACF был параметр «Сохраняемый формат». Этот параметр позволял разработчику изменить формат даты, сохранённой в Базе Данных. Однако, этот параметр создавал много проблем и был удален. Теперь дата хранится в формате «ГГГГММДД».
Настройки
Имя | Описание |
---|---|
Отображаемый формат | Формат во время редактирования поля в админке. |
Возвращаемый формат | Формат возвращаемого значения на бэкенде. Обратите внимание, что значение всегда сохраняется как «ГГГГММДД» в БД. |
День начала недели | Нужно для использования календаря в разных странах. |
Использование в шаблоне
Поле «выбор даты» вернет строку, содержащую значение даты в формате, указанном в настройках поля. В следующих примерах предполагается, что существует поле с именем «date».
Базовый
В примере показано как вывести поле «дата».
<p>Дата мероприятия: <?php the_field('date'); ?></p>
Продвинутый
В коде ниже показано, как получить «сырое» значение (сохраненное в формате «ГГГГММДД») и преобразовать его в числовое значение, чтобы затем совершать с ним необходимые манипуляции.
<?php
// получем "сырое" значение
$date = get_field('date', false, false);
// создаем новый экземпляр класса для даты
$date = new DateTime($date);
?>
<p>День начала мероприятия: <?php echo $date->format('j M Y'); ?></p>
<?php
// увеличиваем на 1 день
$date->modify('+1 day');
?>
<p>День окончания мероприятия: <?php echo $date->format('j M Y'); ?></p>
Переводы
Чтобы дата отображалась не на английском языке в WordPress есть функция date_i18n(), которая выполнит перевод.
<?php
$dateformatstring = "l d F, Y";
$unixtimestamp = strtotime(get_field('date_picker'));
echo date_i18n($dateformatstring, $unixtimestamp);
?>
Сортировка постов (записей)
В примере показано как можно отсортировать и упорядочить посты (тип постов ‘event’) с помощью запроса по произвольному полю (в нашем случае по дате).
<?php
// получаем нужные посты
$posts = get_posts(array(
'post_type' => 'event',
'meta_key' => 'date',
'orderby' => 'meta_value_num',
'order' => 'ASC'
));
// цикл
if( $posts ) {
foreach( $posts as $post ) {
setup_postdata( $post );
// делаем что-то...
}
wp_reset_postdata();
}
?>
WP_Query для сортировки по дате
В этом примере показано, как можно использовать объект WP_Query для поиска записей, где «start_date» и «end_date» указывают, что запись «активна».
<?php
$today = date('Ymd');
$args = array (
'post_type' => 'post',
'meta_query' => array(
array(
'key' => 'start_date',
'compare' => '<=',
'value' => $today,
),
array(
'key' => 'end_date',
'compare' => '>=',
'value' => $today,
)
),
);
// получаем посты
$posts = get_posts($args);
?>
Похожие
- Тип поля: Дата и время