J'ai un metaquery pour un type de message personnalisé "événements". Leur date de début est stockée en tant que méta-champ dans ce format:
2016-02-05 19:00:00
Voici mes arguments de requête:
$args = array(
"posts_per_page" => 12,
"paged" => $paged,
"post_type" => array(
"event",
"post"
) ,
"post_status" => "publish",
"meta_key" => "_thumbnail_id",
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'event_start',
'value' => date("Y-m-d H:i:s") ,
'compare' => '>=',
'type' => 'DATE'
) ,
array(
'key' => 'event_start',
'compare' => 'NOT EXISTS'
)
) ,
array(
'key' => 'foreign_language',
'value' => 0
) ,
array(
'key' => 'hide_from_most_recent',
'value' => 0
)
);
Le problème: la date et l'heure actuelles sont: 2016-02-05 12:29:16
Cette requête doit renvoyer la publication avec cette méta-valeur: 2016-02-05 19:00:00
Hier (un jour avant cette date) cela a fonctionné. Aujourd'hui ce n'est pas le cas. Moyens: Si le jour est le même mais que l'heure et la minute sont plus grandes qu'aujourd'hui, cela ne fonctionne pas comme il se doit. Il semble que l'heure, la minute et la seconde soient ignorées. Je suppose que le problème est dû au fait que j'ai mélangé l'heure et la date.
Est-ce exact? À quoi devrait ressembler la requête, que cela fonctionne?
Merci beaucoup
Trouvé l'erreur:
$args = array(
"posts_per_page" => 12,
"paged" => $paged,
"post_type" => array(
"event",
"post"
) ,
"post_status" => "publish",
"meta_key" => "_thumbnail_id",
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'event_start',
'value' => date("Y-m-d H:i:s") ,
'compare' => '>=',
'type' => 'DATETIME'
) ,
array(
'key' => 'event_start',
'compare' => 'NOT EXISTS'
)
) ,
array(
'key' => 'foreign_language',
'value' => 0
) ,
array(
'key' => 'hide_from_most_recent',
'value' => 0
)
);
Il doit être DATETIME
au lieu de DATE
comme type de comparaison.