Установить дату публикации до 1970


10

У меня есть пользовательский тип сообщения, называемый книги. Дата публикации книг - между 1700 и 1900 годами.

Я хочу установить дату публикации на эти даты (чтобы я мог запросить результаты, отсортированные по годам), но я не могу установить дату до 1 января 1970 года.

Можно ли как-то это сделать?


Насколько я могу судить, дата публикации ограничена 1902 годом.
Вик

Я посмотрел на это, и post_dateв базе данных правильно установлены на любую дату, которую я пытался. Тем не менее, post_date_gmtнеправильно установлено, как 1 января 1970 года - начало мира . Так что не пытайтесь освоить это поле. Делай то, что предлагает.
s_ha_dum

+1 хороший вопрос! Поиск 1970 года имеет интересные результаты здесь и в SO . Плагин не очень хорошо закодирован, но, возможно, стоит посмотреть ...
brasofilo

Ответы:


10

Не используйте post_dateполе ни для чего, для чего оно не предназначено. Вместо этого используйте метаполе поста. post_dateЭто неизбежноpost_date_gmt , вы получите странный побочный эффект , даже вы могли бы получить более раннюю дату в этом.

Так что создавайте мета-поля постов и запрашивайте их по налоговым запросам . Игнорировать поле по умолчанию.

В ответ на ваш комментарий: Не используйте таксономию.

  1. Таксономии построены так, что допускают использование нескольких терминов на пост (игнорируйте пост-форматы здесь). Схема не соответствует вашему варианту использования.
  2. Запросы таксономии дороги, они проходят через три таблицы.
  3. Вам придется изменить интерфейс по умолчанию, чтобы предотвратить несчастные случаи, например, несколько назначений. Возможно, но не совсем просто и, возможно, не совместимо с форвардом.

Я тоже однажды запустил плагин диспетчера книг, но, к сожалению, он все еще в черновом состоянии ... но у меня есть несколько рекомендаций относительно дат:

  1. Используйте два типа записей: один для опуса, другой для реальных изданий ( opusтип будет родительским для нескольких изданий). Таким образом, вы можете сохранить дату создания в опусе, дату публикации (язык, редактор, переводчик и т. Д.) В издании.

  2. Прочитайте Создание <time>безопасного для историков . Даты до 1970 года тяжелые.

  3. Функции даты и времени MySQL не могут обрабатывать все случаи, в результате вы получаете несколько пользовательских процедур для сортировки, в зависимости от вашего решения для (2.).


Спасибо! Мой клиент прислал мне XML-файл с книгами, и я импортировал его в WordPress. У меня есть только годы для книг, поэтому я решил создать собственную таксономию для этих лет, но потом я обнаружил, что не могу заказать запрос на основе этого. Но если я могу заказать по специальному полю, то я думаю, что и так хорошо.
Passatgt

Позвольте мне спросить вас, как вы думаете, является ли это достаточно хорошим решением для использования специальной таксономии в течение многих лет? Я думаю, что могу создать собственный SQL-запрос для сортировки результатов по названию термина (потому что структура БД в основном такая же, как и с пост-мета-решением), и я думаю, что немного проще управлять годами + книгами в бэкэнде. ,
Passatgt

@passatgt Смотрите мое обновление. Коротко: нет, не делай этого. :)
fuxia

Понял. Хотя стоит упомянуть, что у меня 25 000 книг :)
passatgt

1

Этот плагин использует библиотеку ADOdb Date от John Lim из PHP Everywhere, которая, как я цитирую, «делает форматирование даты с датами до 1970 года очаровательным».


Этот плагин делает больше, чем запрашивает OP, и неясно, используется ли для форматирования даты внутренне плагином, или же он также позволяет использовать такое же форматирование даты для основных функций WordPress. Вы знаете ответы на любые из этих вопросов?
s_ha_dum

Я просто хотел выделить библиотеку Лим и то, как она реализована в плагине WP. Что касается вашего второго вопроса, основные функции не изменены, плагин сохраняет даты в пользовательской таблице базы данных.
Diggy
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.