Probleme cu date_query care nu returnează postări în intervalul de date
Am observat rezultate foarte ciudate cu parametrul date_query al funcției get_posts. Am o postare pentru care:
date('Y-m-d H:i', get_post_time('U', false, $postid))
returnează:
2014-04-03 10:42
Această postare este returnată corect cu următoarele argumente:
$args = array(
'post_type' => 'post',
'cat' => 41,
'fields' => 'ids'
);
Dar nu cu acestea:
$args = array(
'post_type' => 'post',
'date_query' => array(
'after' => '1980-01-01',
'before' => '2100-01-01',
),
'cat' => 41,
'fields' => 'ids',
);
Alte postări par să fie returnate corect. Care ar putea fi problema? Oare date_query interoghează altceva decât get_post_time?

Sintaxa ta este incorectă pentru date_query
. Ar trebui să fie un array de array-uri, nu doar un array.
De asemenea, bănuiesc că problema ta ar putea fi legată de PHP și nu de WordPress.
Data ta before
este invalidă. PHP acceptă doar date între 13 decembrie 1901 și 19 ianuarie 2038, așa că datele tale trebuie să fie între aceste două date. Pentru referință, vezi date
De asemenea, ai putea dori să incluzi parametrul 'inclusive' și să-l setezi la true
pentru potriviri exacte
Interogarea ta ar trebui să arate cam așa:
$args = array(
'post_type' => 'post',
'date_query' => array(
array(
'after' => '1980-01-01',
'before' => '2038-01-01',
'inclusive' => true,
),
),
'cat' => 41,
'fields' => 'ids',
);
