Июн
9
23

Все про даты в WordPress (от задания до вывода)

Дата в WordPressИзначально хотел просто написать про вывод даты в WordPress статьях, но в данной теме оказалось достаточно много нюансов, поэтому решил рассмотреть их все. Заметка будет полезна как абсолютным новичкам, так и пользователям с небольшим опытом. Сам по себе, вопрос даты вордпресс, в принципе, не сложный, но информации по нему хватает. Вот что вы сможете узнать из статьи:

Дата поста в WordPress (установка и редактирование)

При создании новой заметки в админке WordPress дата публикации задается в блоке «Опубликовать», который обычно находится справа от текстового редактора.

Дата поста в WordPress

Здесь устанавливаете нужный месяц, год, число и даже время. Вы сможете изменить данные параметры позже в любое время, если захотите, — для этого заходите в редактирование заметки и задаете новые значения. Кстати, если укажете дату, которая еще не наступила, пост будет скрыт до того момента — данная фишка позволяет реализовать запланированную публикацию в блоге.

В системе также доступа правка даты записи wordpress постов через быстрое редактирование. Выбираете в разделе «Записи» — «Все записи» и видите список всех заметок. Далее при наведении кликаете по свойствам и устанавливаете требуемые значения числа, месяца, года и т.п.

Редактирование даты записи в WordPress

Не забудьте потом нажать кнопку «Обновить». Таким образом вы сможете быстро изменить даты выхода нескольких статей вордпресс на одной странице.

Формат даты в WordPress

Если зайти в раздел «Настройки» — «Общие», то в самом низу страницы найдете установки для формата даты в вордпресс и, чуть ниже, — времени. Отмечаете желаемый вариант из списка или указываете произвольный.

Формат даты в вордпресс

Данные значения будут использоваться в соответствующих функциях the_date и the_time  для шаблона (об этом чуть ниже). Формат для вывода даты в WordPress задается в виде строки, например:

d.m.Y (l) // 09.06.2016 (Четверг)
D - j M - Y // Чт - 9 Июн - 2016

Здесь используются такие же обозначения как в PHP, в частности:

  • d — число месяца с 0 спереди для цифр меньше 10;
  • m — номер месяца из двух символов (с ведущим нулем);
  • Y — обозначает год (из 4х цифр);
  • l (строчная L) — название дня недели полностью;
  • D — сокращенный день недели;
  • j — выводит день месяца без 0 спереди;
  • M — сокращенное название месяца из трех символов;
  • S — английский суффикс для дня месяца — 1st, 2nd или 15th (раньше для вывода даты wordpress с суффиксом на русском был специальный плагин, возможно, сейчас проблема исчезла);
  • F — полное название месяца;
  • и др.

Для времени также есть разные значения, но чаще всего ставится просто строка «H:i», где первый символ «H» отвечает за часы в 24-часовом формате, а «i» — минуты с нулем спереди, если нужно.

Как вывести дату поста в WordPress (the_date)

Сначала разберемся с функцией, которая используется для решения этой задачи — the_date. Она имеет следующий синтаксис:

<?php the_date( $format, $before, $after, $echo ); ?>

Здесь:

  • $format — формат, о котором говорили выше (можно использовать значения и для времени);
  • $before — текст перед датой;
  • $after — текст после даты;
  • $echo — указывает выводить результат функции или нет (по умолчанию True).

Пример использования:

<?php 
	$mypost_date = the_date('d.m.Y', '<i>дата: ', '</i>', FALSE); 
	echo $mypost_date;
?>

В итоге получим строку курсивом — дата: 01.06.2016. Дабы вывести дату поста мы сначала присвоили ее переменной $mypost_date, а затем отобразили с помощью echo. Здесь значение FALSE для последнего параметра функции позволило после ее выполнения не отображать результат. Разумеется, так никто не делает, а я привел этот код лишь для примера. Обычно дату отображают сразу:

<i><?php the_date('d.m.Y'); ?></i>

Можно даже не указывать формат, используя функцию без переменных, если он полностью соответствует тому, что вы задавали в настройках админки.

Второй шаг — добавление the_date в шаблон сайта. В файлах темы wordpress отображение даты, как и других функций с информацией о постах блога, должно располагаться внутри цикла Loop, то есть между:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

и

<?php endwhile; ?>

Такая конструкция встречается и в шаблоне для единичного отображения записей (single.php), и в архивах категорий (category.php), и в основном файле (index.php). Все зависит от того, где вы хотите вывести дату поста.

Как убрать даты публикации в WordPress

Чтобы в вордпресс убрать дату публикации нужно выполнить противоположные действия тем, о которых говорилось выше. Первым делом требуется понимать какой файл шаблона открывать для редактирования:

  1. Для правки страницы поста с полным текстом — single.php, для страницы — page.php.
  2. Для главной — это зачастую файл index.php.
  3. Чтобы убрать дату из вордпресс архивов ищите глобальный файл archive.php. Если в макете есть category.php и tags.php, то страницы разделов и меток определяются через них, переопределяя основной archive.php.
  4. В новых темах можно встретить функцию get_template_part, которая вызывает другой файл для подстановки кода в данное конкретное место шаблона. В таком случае функцию the_date придется искать в указанном здесь файле.

Если же вы хотите убрать даты из WordPress темы целиком, то можете воспользоваться программой WinGrep для Windows. Софт ищет нужную информацию в фалах или в определенной директории — запускаете поиск по «the_date» и получаете список файлов, где она всетрчается.

После того как вы нашли места использования the_date или the_time, открываете соответствующие файлы для редактирования и удаляете функции из них. Это позволит навсегда убрать дату публикации в WordPress сайте. Если боитесь сделать ошибку, сделаете копии файлов темы дабы потом иметь возможность их восстановить.

Дата редактирования в WordPress (the_modified_date)

Если честно, именно ради этой задачи и задумывался данный пост. Информация по WP и другим техническим тематикам может устаревать, поэтому по методу тыквы и вообще важно ее обновлять. Также желательно предоставить читателю какую-то пометку о том, что статья актуальная. Для этого можно реализовать в WordPress отображение даты создания и редактирования поста (отдельно).

Дата редактирования в WordPress

С решением нам поможет функция the_modified_date, ее синтаксис:

<?php the_modified_date( $d, $before, $after, $echo ); ?>

Где:

  • $d — формат даты;
  • $before и $after — тексты перед и после даты;
  • $echo — выводить или нет результаты.

Параметры, в принципе, похожи и на обычную функцию the_date. Итого чтобы вывести обе даты записи в вордпресс использую следующий код:

Дата: <?php the_date(); ?>. Последнее изменение: <?php the_modified_date(); ?>.

Параметры, как видите, не указываю, поэтому формат считывается из настроек админки.

Если у вас еще остались какие-то вопросы по WordPress датам, пишите в комментариях, будем разбирать.

рейтинг Оцените статью:
Ужасная статьяНичего интересногоТак себеНормальноХорошоКлассный постВ закладки!
(голосов - 14, средний балл: 6,14 из 7)
Загрузка...

категория Категории: Возможности; Начинающим;
теги Теги: , , , , , , .

комментария 23 к статье “Все про даты в WordPress (от задания до вывода)”

  • Александр Алексеенко   10.06.2016

    Интересная мысль по поводу вывода двух дат! Как вы думаете поисковики при этом какую из них будут принимать в учет? Или и ту и другую?

  • Tod   11.06.2016

    Александр, сложно сказать, что считает поисковик, если честно даже не задумывался. Если нужно «скормить» ему конкретную дату, то там следует использовать специальную разметку, насколько я знаю.

  • Артем Губтор   18.06.2016

    Да, я тоже думаю, что разметка для того и нужна, чтобы показывать что принимать в учет

  • kinogrant   10.12.2017

    Давно искал информацию про время, оказывается все просто. Спасибо вам!

  • Антон   26.01.2018

    На самом деле с датой у меня только один вопрос. Как выводить правильный формат даты в зависимости от выбранного языка. Очень интересно ваше мнение.

  • Tod   26.01.2018

    Антон, если вы про склонение названий месяцев на русском, то помнится когда-то были плагины Russian Date by Axelnsk, MaxSite Russian Date. Но разрабатывались они очень давно, поэтому не факт, что сейчас работают. Проще всего выводить через формат d.m.Y, где нет никаких названий — я использую этот вариант, меньше лишних слов на странице.

  • Антон   26.01.2018

    Спасибо за ответ. Для отображения склонений не нужны плагины, достаточно простейшей функции. Я говорил именно про числа: 27.01.2018 или 01.27.2018 в зависимости от выбранного языка. Для этого есть решение, но я только начал разбираться.

  • Tod   26.01.2018

    Антон, я понял, про числа в статье вроде как все есть — варианты форматирование для the_date указаны. В крайнем случае еще на сайте PHP можно глянуть.
    По поводу определения языка, помню, использовал функцию get_locale — через IF условный оператор: если ru_RU, то одно действие, en_US — другое и т.п.

  • Роман   07.02.2018

    Для стилизации даты нашел решение(может кому-то пригодится), можно отдельно стилизовать все переменные:

    	echo '' . get_the_date('d') . '';
    	echo '' . get_the_date('M') . '';
    	echo '' . get_the_date('Y') . '';

    Вставляем сами знаете куда… в single.php или в storefront-template-functions.php как в моем случае.

    ps c php не знаком, поэтому навоял такое…

  • Роман   15.05.2018

    А что если реальное время 14-50
    а админка в форме показывает 9-40
    Выбираю пунки Произвольное, но изначально время стоит не то.
    Где это поправить, а то добавляю запись в обед, а сайт показывает утро)

  • Tod   15.05.2018

    Роман, в Настройках — Общие есть пункт с «часовым поясом» — посмотрите чтобы там все правильно было установлено. А вообще, насколько я знаю, время считывается из параметров сервера — поэтому если там весьма радикальное отличие от текущего и с часовой зоной все впорядке, следует обратиться к хостеру.

  • Михаил   14.08.2018

    А как поменять изображение ( фон) на котором отображена дата? Не цвет, а именно фоновую картинку?

  • Tod   15.08.2018

    Михаил, посмотрите в инспекторе браузера Ctrl+Shift+I класс, который отвечает за дату/фон и через стили (style.css или другой) внесите нужные изменения.

  • Екатерина   14.09.2018

    Подскажите, пожалуйста. Моему сайту меньше месяца, я сгенерировала sitemap.xml через плагин all in one seo pack, гугл выдает проблему «Обнаружена неверная дата. Исправьте дату или ее формат перед повторной передачей» пример: даты Родительский тег: url Тег: lastmod Значение: 2018-09-14 04:08:33

    Как и где мне исправить эту ошибку? В настройках даты на вордпресс установлено d.m.Y время H:i

  • Tod   14.09.2018

    Екатерина, сайтмап генерируется автоматически, поэтому тут ничего изменить не сможете. Возможно, даже это косяк со стороны all in one seo pack. Тут есть 3 пути:
    1) покопаться в настройках сервиса — вдруг там есть какие-то настройки дабы это исправить.
    2) Поставить отдельный модуль для задачи, например, Google XML Sitemaps или какой-то еще.
    3) Перейти на более крутой плагин WordPress SEO by Yoast, где проблем с картой сайта точно нет. Если проект молодой и контента мало, можно вручную все заново настроить. Если же уже есть посты/статьи, то понадобится миграция из All In One SEO Pack в WordPress SEO (через модуль SEO Data Transporter).

  • Екатерина   14.09.2018

    Я сейчас установила плагин, ошибка осталась, в Яндексе все ок, гугл снова выдает 2000 ошибок. Мог ли вебмастер при создании сайта где-то ошибиться? И где мне теперь это можно поправить(?

  • Tod   15.09.2018

    Екатерина, если вы про модуль SEO by Yoast, то он точно рабочий, нужно искать проблему в другом месте. Он кстати генерирует карту немного по другому адресу — sitemap_index.xml. Ее нужно включить в настройках, она не активируется автоматически. Возможно, у вас на FTP сайта лежит старая sitemap.xml, и гугл считывает именно ее. Короче говоря, есть нюансы, напишите лучше на почту stod84@gmail.com — нужно больше конкретики о проблеме.

  • Антон   23.11.2018

    Для новичка интересно было бы добавить выбор даты рождения в поле профиля через выпадающий календарь и отображать на страницах отдельных групп пользователей. Далее, например, вывод иконки с гороскопом или знаком зодиака с учетом этой даты. Применения у каждого могут быть свои.

  • Tod   23.11.2018

    Антон, это более сложные задачи уже, я бы искал для их решения плагины. Тут в статье больше теория. Если столкнусь с ними в будущем, обязательно напишу пост.

  • Noro   07.03.2019

    Здравствуйте! Можете помочь? Не знаю, что случилось, но дата у всех постов стоит сегодняшняя, даже у тех, которые были давно опубликованы… материалы 3-4 дневной давности с датой 7.03.2019 стоят…

  • Tod   07.03.2019

    Noro, есть два варианта: 1) если дата отображается только на сайте, а в админке в параметрах постах указаны нормальные значения, то проблема в файле шаблона — неправильно выводятся данные; 2) если же сегодняшняя дата указана непосредственно для записей (и в админке, и в базе данных), то вероятно это глюк/ошибка какого-то из плагинов, сами по себе подобные значения не меняются. К сожалению, во втором случае, если информация уже внесена в базу, то вернуть прошлые значения можно только вручную (либо восстановив старую версию сайта из бекапа).

  • YaBlogo   24.03.2020

    Здравствуйте! У меня аналогичная ошибка как у Noro, но даже смена дат вручную не помогает — всё равно отображается во всех постах сегодняшняя. Не знаете почему так может быть?

  • Tod   25.03.2020

    YaBlogo, нужно смотреть как именно в файлах шаблона выводится дата — там где-то и закралась ошибка.

Оставить комментарий

(предыдущая статья)

Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!

Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:

Поиск:
Последние посты
Лучшее в категории

Облако тегов
Скажи свое мнение!

В чем основные плюсы Wordpress?

Посмотреть результаты

Загрузка ... Загрузка ...
Друзья проекта
Последние новости