Problema con date_query: alcuni post non vengono restituiti nell'intervallo di date
Sto ottenendo risultati molto strani con il parametro date_query di get_posts. Ho un post per cui:
date('Y-m-d H:i', get_post_time('U', false, $postid))
restituisce:
2014-04-03 10:42
Questo post viene restituito correttamente da get_posts con questi argomenti:
$args = array(
'post_type' => 'post',
'cat' => 41,
'fields' => 'ids'
);
Ma non con questi:
$args = array(
'post_type' => 'post',
'date_query' => array(
'after' => '1980-01-01',
'before' => '2100-01-01',
),
'cat' => 41,
'fields' => 'ids',
);
Altri post sembrano essere restituiti correttamente. Cosa potrebbe succedere? date_query interroga qualcosa di diverso rispetto a get_post_time?

La tua sintassi non è corretta per la tua date_query
. Dovrebbe essere un array di un array, non solo un array.
Sospetto anche che il tuo problema possa essere correlato a PHP e non a WordPress.
La tua data before
non è valida. PHP supporta solo date comprese tra il 13 dicembre 1901 e il 19 gennaio 2038, quindi le tue date devono essere comprese tra queste due. Per riferimento, consulta date
Dovresti anche includere il parametro 'inclusive' e impostarlo su true
per corrispondenze esatte
La tua query dovrebbe essere qualcosa come
$args = array(
'post_type' => 'post',
'date_query' => array(
array(
'after' => '1980-01-01',
'before' => '2038-01-01',
'inclusive' => true,
),
),
'cat' => 41,
'fields' => 'ids',
);
