Definir data de publicação antes de 1970

10

Eu tenho um tipo de postagem personalizado chamado livros. A data de publicação dos livros é entre 1700 e 1900.

Desejo definir a data de postagem para essas datas (para que eu possa consultar os resultados classificados por ano), mas não consigo ter uma data definida antes de 1º de janeiro de 1970.

É possível fazer isso de alguma forma?

passatgt
fonte
Tanto quanto eu posso dizer a data de postagem é limitada a 1902.
Wyck
Dei uma olhada nisso e post_dateo banco de dados é definido corretamente em qualquer data que tentei. No entanto, post_date_gmtestá definido incorretamente como 1º de janeiro de 1970 - o começo do mundo . Portanto, não tente cooptar esse campo. Faça o que toscho sugere.
s_ha_dum
+1 boa pergunta! A pesquisa de 1970 apresenta resultados interessantes aqui e no SO . O plugin não parece muito bem codificado, mas pode valer a pena um olhar ...
brasofilo

Respostas:

10

Não use o post_datecampo para nada para o qual não foi feito. Use um meta-campo de postagem. O post_dateé obrigado apost_date_gmt , você teria um efeito colateral estranho, mesmo que você possa obter uma data anterior para isso.

Portanto, crie metadados de postagem e consulte-os por consulta fiscal . Ignore o campo padrão.

Em resposta ao seu comentário: Não use uma taxonomia.

  1. As taxonomias são criadas para permitir vários termos por postagem (ignore os formatos de postagem aqui). O esquema não corresponde ao seu caso de uso.
  2. As consultas de taxonomia são caras, elas percorrem três tabelas.
  3. Você precisaria alterar a interface padrão para evitar acidentes, como várias atribuições. Possível, mas não exatamente simples e talvez não compatível com a frente.

Também iniciei um plug-in de gerenciador de livros, infelizmente, ele ainda está em um status de rascunho… mas tenho algumas recomendações sobre datas:

  1. Use dois tipos de postagem: um para o opus, outro para as edições reais (o opustipo seria pai de várias edições). Assim, você pode armazenar a data de criação na obra, a data de publicação (o idioma, o editor, o tradutor etc.) na edição.

  2. Leia Tornando <time>seguro para historiadores . Datas anteriores a 1970 são difíceis.

  3. As funções de data e hora do MySQL não podem lidar com todos os casos; você acaba com algumas rotinas personalizadas para classificação, dependendo da sua solução para (2.).

fuxia
fonte
Obrigado! Meu cliente me enviou um arquivo xml com os livros e eu o importei para o wordpress. Eu só tenho os anos para os livros, então decidi criar uma taxonomia personalizada para os anos, mas descobri que não posso solicitar a consulta com base nisso. Mas se eu posso pedir por campo personalizado, acho que também está bem.
passatgt
Deixe-me perguntar, o que você acha, é uma solução boa o suficiente para usar uma taxonomia personalizada durante anos? Eu acho que posso criar uma consulta sql personalizada para classificar os resultados com base no nome do termo (porque a estrutura db também é basicamente a mesma com a meta meta post) e acho que é um pouco mais fácil gerenciar os anos + livros no back-end .
passatgt
@passatgt Veja minha atualização. Breve: não, não faça isso. :)
fuxia
Entendi. Vale a pena mencionar, porém, que eu tenho 25.000 livros :)
passatgt
1

Este plugin usa a ADOdb Date Library, de John Lim, do PHP Everywhere, que é - cito - "tornando a formatação de datas com datas anteriores a 1970 um charme".

indecente
fonte
Esse plug-in faz mais do que o OP solicita e não está claro se a formatação da data é usada internamente pelo plug-in ou se também habilita a mesma formatação de data para as principais funções do WordPress. Você conhece as respostas para alguma dessas perguntas?
s_ha_dum
Eu só queria destacar a biblioteca de Lim e como ela é implementada em um plugin WP. Quanto à sua segunda pergunta, as funções principais não são alteradas, o plugin armazena as datas em uma tabela de banco de dados personalizada.
diggy