C'était un titre très dense.
J'ai un type de message personnalisé "événement" qui a un champ de sélecteur Date/Heure "date_événement" grâce au plugin Advanced Custom Fields. Ce sélecteur de date/heure enregistre un horodatage UNIX dans la base de données. J'essaie d'utiliser WP_Query pour obtenir tous les événements d'aujourd'hui ou à venir. C'est le code que j'ai en ce moment:
$args = Array(
'post_type' => 'event',
'posts_per_page' => -1,
'meta_key' => 'event_date',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
'key' => 'event_date',
'compare' => '>=',
'value' => intval(strtotime(date('Y-m-d'))),
'type' => 'numeric'
),
);
$query = new WP_Query( $args );
Cela me donne tous les événements, passés et futurs.
Je me rends compte que les horodatages sont stockés sous forme de chaînes dans la base de données, donc 'comparer' => '> =' ne fonctionnerait normalement pas, mais ce que j'ai lu sur Google et dans le Codex est ce que 'type' => 'numérique' devrait lancer la chaîne en un entier et lui permettre d'être comparée à ma valeur de ce matin à minuit. Malheureusement, cela ne semble pas fonctionner et je ne comprends pas pourquoi.
Essayez un tableau de tableaux dans votre méta requête.
$args = Array(
'post_type' => 'event',
'posts_per_page' => -1,
'meta_key' => 'event_date',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'event_date',
'compare' => '>=',
'value' => intval(strtotime(date('Y-m-d'))),
'type' => 'numeric'
)
),
);
$query = new WP_Query( $args );
woa, vous avez sauvé ma journée avec cette réponse. J'essayais de filtrer les publications par un champ numérique personnalisé appelé type_price et j'essayais de le faire de cette façon:
'meta_query' => array(
array(
'key' => 'type_price',
'value' => array( 0, 500000 ),
'compare' => 'BETWEEN',
'type' => 'NUMERIC',
)),
mais cela devrait être comme cela: ASC:
array(
'posts_per_page' => -1,
'meta_key' => 'type_price',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'type_price',
'value' => array( 0, 500000 ),
'compare' => 'BETWEEN',
'type' => 'NUMERIC',
)
)),
merci beaucoup :)