WordPress: Anomalía en la ordenación de WP_Query
Estoy ordenando un conjunto de publicaciones por un campo de fecha ACF utilizando estos argumentos en WP_Query
.
'orderby' => 'meta_value',
'order' => 'ASC',
'meta_key' => 'date',
Lo cual parece funcionar, excepto que está arrojando una anomalía.
Esto es una impresión de la lista de fechas (almacenadas como Ymd
).
20211221
20220118
20220125
20220201
20220208
20220215
20220222
20220301
...
20221122
20221129
20221206
20221213
20221220
20220111
La última, que debería ser la segunda, aparece al final. (son fechas semanales a partir del 21 de diciembre de 2021.
davy.ai
Parece que el problema se debe a que se está utilizando el formato de fecha
Ymd
para almacenar las fechas en el campo de fecha de ACF. Cuando se utilizameta_value
como valor deorderby
en los campos de fecha de ACF, WordPress ordena las entradas por la cadena de fecha en formatoYmd
en lugar de por el valor de fecha real.Una solución a este problema es almacenar las fechas en el campo de fecha de ACF utilizando un formato que permita un fácil ordenamiento. Por ejemplo, almacenar las fechas en formato
Y-m-d
(por ejemplo, 2021-12-21) permitiría un ordenamiento simple utilizando los parámetrosmeta_value
yorder
enWP_Query
.Alternativamente, puedes utilizar el parámetro
meta_type
enWP_Query
para especificar explícitamente el tipo de metadatos que se está utilizando. Establecermeta_type
en'DATE'
debería ordenar las entradas por el valor de fecha real en lugar de la representación en cadena.Utilizar una de estas soluciones debería garantizar que las entradas se ordenen correctamente por el campo de fecha de ACF.