- Выводим дату публикации поста в WordPress. Разбираем форматы и встроенные функции движка.
- Какие теги шаблона используются для вывода даты?
- Где вносить правки?
- Формат даты в WordPress
- Изменение формата даты и времени из админки WordPress
- Вывод даты последнего обновления поста
- Форматы даты и времени в WordPress
- Все символы формата даты и времени
- Примеры
- Экранирование
- Локализация
- wp_date() WP 5.3.0
- Как показывать текущую дату в WordPress (2 способа)
- Шорткод для отображения сегодняшней даты в WordPress
- Как показать сегодняшнюю дату с помощью кода
- Краткий итог
Выводим дату публикации поста в WordPress. Разбираем форматы и встроенные функции движка.
При разработке информационного или новостного сайта, либо же раздела «Блог» для коммерческого сайта на WordPress, вы столкнетесь с необходимостью вывода даты публикации поста. Это простая задача, но есть некоторые нюансы использования различных функций WordPress для работы с датой.
Какие теги шаблона используются для вывода даты?
- the_date(). Этот тег получает и выводит на экран дату поста или группы постов (опубликованных в один день). Используется только внутри цикла WordPress.
- get_the_date(). Получает дату текущего поста. Для того чтобы вывести ее на вашем сайте нужно использовать код: echo get_the_date().
- the_time(). Выводит на экран время и дату публикации текущей записи.
- get_the_time(). Получает время текущей публикации. Для вывода используют конструкцию: echo get_the_time().
Важный момент! При выводе конструкции the_date() в цикле вывода постов, например на странице категории, дата будет выводиться только для последней записи с одинаковой датой публикации. Проще говоря, если вы за день опубликуете три поста, то дата будет отображаться только для последнего добавленного поста, а двух остальных она отображаться не будет.
Чтобы решить эту проблему вместо the_date(), в цикле можно использовать конструкцию echo get_the_date(),она всегда получает дату, даже если следующий (в цикле) пост был опубликован в тот же день. Второй вариант решения проблемы – это использование конструкций the_time() или же echo get_the_time(), с указанием формата в виде даты. В таком случае все записи, опубликованные даже в один день, будут иметь разное время публикации, и значение будет выводиться в цикле WordPress.
Где вносить правки?
Перед тем как я покажу примеры конструкций кода для вывода даты записи, стоит уточнить, что изменения вносятся в файлах темы, которую вы используете для своего сайта.
Для редактирования даты в записях нужно искать фалы по типу:
Для правки даты постов в категориях могут использоваться файлы:
Перед началом изменений делаете бекап файла. Далее открываете файл и находите конструкции по выводу даты, которая используется у вас в шаблоне, например:
Удаляете ее и пишите код вашей кастомной функции для даты с настройками.
Обычно дату размещают под заголовком записи, или же в конце поста.
Формат даты в WordPress
Каждая из приведенных выше функций для работы с выводом даты публикаций принимает в качестве параметров формат даты, которую вы можете настроить под свои требования.
Давайте разберемся с форматированием на примере функции the_date().
По умолчанию эта функция принимает следующие параметры.
В качестве переменной $format – указывают формат записи.
Чаще всего используют следующие коды для формирования структуры даты записи.
- Y – год в виде четырех цифр, например, 2021;
- y – год в виде двух последних цифр, 21;
- m – номер месяца с нулями, например, 02, 08, 10;
- M – сокращенное название месяца, например, Фев, Окт;
- F – полное название месяца, Февраль;
- j – день месяца без нулей, от 1 до 31;
- d – день месяца с нулями, от 01 до 31;
- l (строчная английская L) – полное название дня недели;
- D – сокращенное название дня недели, например, Пн, Вт.
Пример конструкции даты формата: 12.01.2021, будет иметь следующий вид: j.m.Y. А для вывода значения в виде 12 января 2021, нужно использовать форматирование: j F Y.
Переменная $before используется для указания тега, текста или прочего элемента, который будет отображаться перед датой. Переменная $after, делает то же самое, но только выводит значение после даты.
Переменная $echo указывает выводить или не выводить результат работы функции. Ее обычно не указывают.
Пример использования функции:
На сайте получим вывод следующего кода:
Пример использования функции the_time() для работы с датой публикации поста.
С помощью кодов форматирования вы сможете вывести любую нужную для вас конструкцию даты публикации в WordPress.
Изменение формата даты и времени из админки WordPress
Если у себя в теме вы используете функции без указания переменной $format для функций: the_date(), get_the_date(), the_time(), get_the_time(), то вы сможете менять формат для даты и времени в административной панели WordPress. Для этого переходим в раздел «Настройки» — «Общие» и спускаемся вниз страницы, где находим следующие секции настроек.
Выбираем нужный формат и нажимаем кнопку «Сохранить изменения». Формат дат для записей измениться.
Вывод даты последнего обновления поста
При редактировании записи после ее сохранения обновляется и дата последнего изменения поста. Поисковики в последнее время акцентируют внимание на актуализации и обновлении старых постов на блоге, и вывод такой информации позволит оповестить поисковые системы о том, что вы внесли изменения в контенте страницы.
За вывод даты последнего форматирования поста отвечают функции — the_modified_time() и the_modified_date().
Чтобы вывести эти данные можно использовать следующий код.
Учтите, что если запись не редактировалась, то дата выводиться не будет. Часто разработчики на блогах используют обе даты: публикации и обновления.
Можно использовать и семантическую разметку для даты.
Важный момент! После публикации даты обновления поисковики изменять ее и в результатах выдачи, что поможет повысить кликабельность, поскольку пользователь будет видеть, что статья актуальна.
На этом сегодня все, надеюсь, материал был для вас полезен.
Источник
Форматы даты и времени в WordPress
В WordPress есть функции, которые получают дату или время записи, комментария или чего-то еще: the_date(), the_time(), mysql2date() и т.д. В каждую из таких функций можно передать формат, чтобы получить время или дату в нужном формате. В этой заметке показано, как получить любой формат и какие символы в указанном формате за что отвечают.
Простой пример: вывод на экран времени публикации записи:
Выведет дату в виде: 1 апреля 2016 в 20:09 .
Все символы формата даты и времени
А теперь, давайте рассмотрим все специальные символы, которые можно использовать в формате.
День месяца | ||
---|---|---|
d | 01–31 | Число, с нулем впереди |
j | 1–31 | Число, без нуля впереди |
S | st, nd or th in the 1st, 2nd or 15th. | Английский суффикс дня месяца |
День недели | ||
l | Sunday – Saturday (Понедельник — Воскресенье) | Полное название (строчная ‘L’) |
D | Mon – Sun (Пон — Вс) | Короткое название |
N | 1 (понедельник) — 7 (воскресенье) | Номер дня недели |
w | 0 (воскресенье) — 6 (суббота) | Номер дня недели |
Месяц | ||
m | 01–12 | Число, с нулем впереди |
n | 1–12 | Число, без нуля впереди |
F | January – December (Январь — Декабрь) | Полное название |
M | Jan — Dec (Янв — Дек) | Короткое название |
t | 28 — 31 | Количество дней в месяце |
Год | ||
Y | 1999, 2003 | Число, 4 цифры |
y | 99, 03 | Число, 2 цифры |
z | 0 — 365 | Номер дня в году (начиная с 0) |
W | 34 (34-я неделя года) | Номер недели года |
L | 1 или 0 | Високосный ли это год |
Время | ||
a | am, pm | Строчный диапазон |
A | AM, PM | Прописной диапазон |
h | 01–12 | Часы (0-12), с нулем впереди |
g | 1–12 | Часы (0-12), без нуля впереди |
H | 00-23 | Часы (0-24), с нулем впереди |
G | 0-23 | Часы (0-24), без нуля впереди |
i | 00-59 | Минуты, с нулем впереди |
s | 00-59 | Секунды, с нулем впереди |
T | EST, MDT . | Аббревиатура временной зоны |
Полные дата и время | ||
c | 2004-02-12T15:19:21+00:00 | Дата в формате стандарта ISO 8601 |
r | Thu, 21 Dec 2000 16:01:07 +0200 | Дата в формате » RFC 2822 |
U | 1455880176 | Число, штамп времени Unix — количество секунд с 1 января 1970 года |
Форматы из таблицы — это стандарт PHP и также могут быть использованы для форматирования даты в PHP, например, с помощью функции date().
Примеры
Формат | Результат |
---|---|
F j, Y g:i a | November 6, 2010 12:50 am |
F j, Y | November 6, 2010 |
F, Y | November, 2010 |
g:i a | 12:50 am |
g:i:s a | 12:50:48 am |
l, F jS, Y | Saturday, November 6th, 2010 |
M j, Y @ G:i | Nov 6, 2010 @ 0:50 |
Y/m/d \a\t g:i A | 2010/11/06 at 12:50 AM |
Y/m/d \a\t g:ia | 2010/11/06 at 12:50am |
Y/m/d g:i:s A | 2010/11/06 12:50:48 AM |
Y/m/d | 2010/11/06 |
Y-m-d H:i:s | 2017-11-06 21:37:22 |
Пример с функцией WordPress
Экранирование
Если использовать символы не из таблицы, то они будут показаны как есть, например, в из примера выше. Но когда нужно, чтобы спецсимвол не обрабатывался (использовался как есть), его нужно экранировать обратным слэшем \ .
Локализация
Для перевода строк в дате вроде: November на язык сайта, используется функция date_i18n().
Также, для локализации формата можно использовать стандартные функции локализации: __(), _e() и т.д. Например:
Источник
wp_date() WP 5.3.0
Получает локализованную дату (переведенную на текущий язык) из переданной метки времени unix. Локализация PHP функции date().
Если в выводимой дате используется формат с месяцем или неделей в виде строки, то функция попытается перевести их на текущий язык. В остальных случаях — это аналог date() в PHP.
Это новая функция (введенная в версии 5.3), которая должна полностью заменить функцию date_i18n() .
Заметка: этой функции, в отличии от date_i18n() , нужно передавать «реальную» метку времени Unix (метку в UTC/GMT формате, без добавления к ней сдвижки временной зоны). Сдвижка временной зоны добавляется автоматически внутри функции на основе третьего параметра $timezone .
Указать произвольную сдвижку временной зоны можно в третьем параметре $timezone .
В связи с введением в версии 5.3 нового API для работы со временем.
Не рекомендуется:
- Не получайте время WP timestamps (число равное метке времени + сдвижка времени сайта):
- current_time( ‘timestamp’ )
- get_post_time( ‘U’ )
- Не локализуйте время/дату функцией:
- date_i18n( DATE_RFC3339, $timestamp + $offset )
- Не сохраняйте на постоянной основе WP timestamps .
- Не сравнивайте WP timestamp’ы .
- Не изменяйте временную зону PHP с помощью функции date_default_timezone_set() (это важное требование для правильной работы ядра).
Рекомендуется
- Получайте время как Unix timestamp (метка времени Unix без сдвижки) или как объект DateTimeImmutable :
- time()
- current_datetime().
- get_post_datetime().
- get_post_timestamp().
- Локализуйте время/дату базируясь на Unix timestamp:
- wp_date( DATE_RFC3339, $timestamp ).
- Сохраняйте Unix timestamps или форматы, которые точно указывают момент времени, например DATE_RFC3339.
- Сравнивайте метки времени Unix, объекты DateTimeInterface или строковые даты в единой временной зоне.
- Используйте объекты: DateTimeZone и DateTimeImmutable (с функцией wp_date() для локализации), когда нужно получить время во временной зоне отличной от зоны сайта).
Источник
Как показывать текущую дату в WordPress (2 способа)
Вполне вероятно, что вам может понадобиться выводить текущую дату в каком-то месте на вашем сайте на WordPress. Это покажет вашим читателям, что сайт «живой» и актуальный. И это будет дополнительным напоминанием посетителям сайта о сегодняшней дате.
Некоторые темы ВордПресс имеют встроенный параметр для отображения сегодняшней даты на сайте. Если ваша тема не поддерживает этого, вам нужно будет самому реализовать вывод текущей даты.
В сегодняшней статье мы рассмотрим 2 разных способа отображения сегодняшней даты на сайте на WordPress. В первую очередь мы создадим шорткод, а для второго способа будем использовать небольшой кусок PHP кода в файлах шаблонах темы.
Шорткод для отображения сегодняшней даты в WordPress
Чтобы показывать на сайте текущую дату, вы можете создать свой собственный шорткод, используя всего несколько строк кода. Если вы не сильно знакомы с шорткодами WordPress, рекомендуем прочитать эту статью. Уникальность использования шорткода для этой цели заключается в том, что он дает возможность выводить текущую дату в любой части вашего контента, а не только с помощью виджетов.
Добавьте следующий код в файл functions.php вашей активной темы:
Эта функция добавит новый шорткод в систему. Для вывода текущей даты будет использоваться настройка для формата дат, которую вы установили в пункте Настройки → Общие в Консоли.
После этого вы сможете использовать шорткод [currentdate] в редакторе WordPress. И он отобразит текущую дату во фронтэнде сайта в соответствии с форматом даты в настройках вашего сайта на WordPress.
Как показать сегодняшнюю дату с помощью кода
Если вы хотите показывать сегодняшнюю дату с помощью небольшого куска кода, и вас не пугает необходимость править файлы-шаблоны в теме, вы можете использовать этот способ.
Для этого вы можете использовать один из двух разных видов кода:
Этот код будет выводить на сайте текущую дату, используя формат даты, который установлен в настройках WordPress (как и шорткод, рассмотренный выше).
Но вы также можете указать свой формат даты, используя этот кусочек кода:
Вот что представляет собой каждый символ формата даты в приведенной выше строке:
- l – это полное название дня недели (L в нижнем регистре)
- j – это день месяца
- F – это полное название месяца
- Y – это цифровое обозначение года (4 цифры; если использовать нижний регистр, тогда последние 2 цифры года)
Вы можете использовать этот код, например, в шаблоне для шапки сайта – после закрывающего тега в файле header.php .
Чтобы добавить CSS-стилей для показа даты, вы можете обернуть этот код тегом
Краткий итог
Хотя это и не обязательно, но отображение текущей сегодняшней даты на сайте WordPress может вам пригодиться. Вы можете использовать для этого шорткод, либо небольшой кусок PHP кода в файлах шаблонах текущей темы. Мы не рассматриваем для решения этой задачи использование плагина, поскольку 2 способа в сегодняшней статье делают это проще и доступнее.
Источник