Problema con date_query que no devuelve algunas publicaciones en el rango de fechas
Estoy obteniendo resultados muy extraños con el parámetro date_query de get_posts. Tengo una publicación para la cual:
date('Y-m-d H:i', get_post_time('U', false, $postid))
devuelve:
2014-04-03 10:42
Esta publicación se devuelve correctamente con get_posts usando estos argumentos:
$args = array(
'post_type' => 'post',
'cat' => 41,
'fields' => 'ids'
);
Pero no con estos:
$args = array(
'post_type' => 'post',
'date_query' => array(
'after' => '1980-01-01',
'before' => '2100-01-01',
),
'cat' => 41,
'fields' => 'ids',
);
Otras publicaciones parecen devolverse correctamente. ¿Qué podría estar pasando? ¿Acaso date_query consulta algo diferente a get_post_time?

Tu sintaxis es incorrecta para tu date_query
. Debería ser un array de un array, no solo un array.
También sospecho que tu problema podría estar relacionado con PHP y no con WordPress.
Tu fecha before
no es válida. PHP solo admite fechas entre el 13 de diciembre de 1901 y el 19 de enero de 2038, por lo que tus fechas deben estar entre esos dos rangos. Como referencia, consulta date
También querrás incluir el parámetro 'inclusive' y establecerlo en true
para coincidencias exactas
Tu consulta debería ser algo como
$args = array(
'post_type' => 'post',
'date_query' => array(
array(
'after' => '1980-01-01',
'before' => '2038-01-01',
'inclusive' => true,
),
),
'cat' => 41,
'fields' => 'ids',
);
