Establecer fecha de publicación anterior a 1970


10

Tengo un tipo de mensaje personalizado llamado libros. La fecha de publicación de los libros es de entre 1700 y 1900.

Quiero establecer la fecha de publicación en estas fechas (para poder consultar los resultados ordenados por año) pero parece que no puedo tener una fecha establecida antes del 1 de enero de 1970.

¿Es posible de alguna manera hacer eso?


Hasta donde puedo decir, la fecha de publicación está limitada a 1902.
Wyck

Eché un vistazo a esto y post_dateen la base de datos se establece correctamente en cualquier fecha que intenté. Sin embargo, post_date_gmtestá configurado incorrectamente como el 1 de enero de 1970, el comienzo del mundo . Así que no intentes cooptar ese campo. Haz lo que toscho te sugiere.
s_ha_dum

+1 buena pregunta! La búsqueda de 1970 tiene resultados interesantes aquí y en SO . El complemento no parece muy bien codificado, pero puede valer la pena echarle un vistazo ...
brasofilo

Respuestas:


10

No use el post_datecampo para nada para lo que no esté hecho. Utilice un metacampo de publicación en su lugar. El post_dateestá obligado apost_date_gmt , se llega extraño efecto secundario, incluso se puede conseguir una fecha anterior a ese.

Por lo tanto, cree metacampos posteriores y consulte aquellos por consulta fiscal . Ignora el campo predeterminado.

En respuesta a su comentario: No use una taxonomía.

  1. Las taxonomías se crean para permitir múltiples términos por publicación (ignore los formatos de publicación aquí). El esquema no coincide con su caso de uso.
  2. Las consultas de taxonomía son caras, se ejecutan en tres tablas.
  3. Tendría que cambiar la interfaz predeterminada para evitar accidentes como asignaciones múltiples. Posible, pero no exactamente simple y quizás no compatible con versiones anteriores.

También comencé un plugin de administrador de libros una vez, desafortunadamente todavía está en estado de borrador ... pero tengo algunas recomendaciones con respecto a las fechas:

  1. Utilice dos tipos de publicaciones: una para el opus, otra para las ediciones reales (el opustipo sería padre para varias ediciones). Por lo tanto, puede almacenar la fecha de creación en el opus, la fecha de publicación (el idioma, el editor, el traductor, etc.) en la edición.

  2. Leer Hacer <time>seguro para los historiadores . Las fechas anteriores a 1970 son difíciles.

  3. Las funciones de fecha y hora de MySQL no pueden manejar todos los casos, usted termina con algunas rutinas personalizadas para ordenar, dependiendo de su solución para (2.).


¡Gracias! Mi cliente me envió un archivo xml con los libros y lo importé a WordPress. Solo tengo los años para los libros, así que decidí crear una taxonomía personalizada para los años, pero luego descubrí que no puedo ordenar la consulta en función de esto. Pero si puedo ordenar por campo personalizado, entonces supongo que también está bien así.
passatgt

Déjame preguntarte, ¿qué te parece, es una solución lo suficientemente buena como para usar una taxonomía personalizada para los años? Creo que puedo crear una consulta SQL personalizada para ordenar los resultados en función del nombre del término (porque la estructura db es básicamente la misma con la solución meta posterior también) y creo que es un poco más fácil administrar los años + libros en el backend .
passatgt

@passatgt Ver mi actualización. Corto: no, no hagas eso. :)
fuxia

Entendido. Sin embargo, vale la pena mencionar que tengo 25,000 libros :)
aprobado el

1

Este complemento utiliza la Biblioteca de fechas ADOdb de John Lim de PHP Everywhere, que es, cito, "haciendo que el formato de fecha con fechas anteriores a 1970 sea un encanto".


Ese complemento hace más de lo que pide el OP y no está claro si el formato de fecha es utilizado internamente por el complemento o si también habilita el mismo formato de fecha para las funciones principales de WordPress. ¿Conoces las respuestas a alguna de esas preguntas?
s_ha_dum

Solo quería resaltar la biblioteca de Lim y cómo se implementa en un complemento WP. En cuanto a su segunda pregunta, las funciones principales no se modifican, el complemento almacena las fechas en una tabla de base de datos personalizada.
diggy
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.