J'ai des publications qui utilisent un champ personnalisé pour la date de début et la date de fin. query_posts
renvoie un tableau de publications existant dans la catégorie que je filtre. Comment interroger les publications à l’aide de ce champ personnalisé portant la date 03/11/2010 et non le tableau complet. La pagination fonctionne sur le tableau complet, de sorte qu'elle renvoie tous les articles. Je peux utiliser un if sinon pour ne montrer que les messages plus récents qu'aujourd'hui, alors la pagination ne fonctionne pas. Aurais-je besoin de créer une requête mysql personnalisée?
<?php
$querystr = "
SELECT wposts.*
FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta
WHERE wposts.ID = wpostmeta.post_id
AND wpostmeta.meta_key = 'date_field'
AND wpostmeta.meta_value = '03/11/2010'
AND wposts.post_status = 'publish'
AND wposts.post_type = 'post'
ORDER BY wposts.post_date DESC
";
$pageposts = $wpdb->get_results($querystr, OBJECT);
?>
Ensuite, vous accéderiez à $ pageposts en tant qu'objet
Vous pouvez créer une requête personnalisée en utilisant les filtres suivants: query_vars
, posts_join
, posts_where
, posts_groupby
. voici le lien codex vers des requêtes personnalisées . Quelques exemples sont énumérés ici pour obtenir de l'aide.
Vous pouvez le faire avec WP_Query
en utilisant meta_query
.
$my_query = new WP_Query( array(
'meta_query' => array(
array(
'key' => 'date_field',
'value => '03/11/2010',
'compare' => '='
)
)
) );
Par défaut, il recherchera les publications.
Je suggère également de stocker la date au format aaaa/mm/jj. Le tri par ce champ sera beaucoup plus facile si vous le faites ainsi.