2013-01-24 4 views
1

J'essaie d'afficher un calendrier dans ma barre latérale. Les messages qui doivent apparaître dans ce calendrier ont un champ personnalisé appelé event_date. Le champ est rempli avec une date, formaté comme YYYYMMDD. J'essaie de faire juste événements dans le futur apparaître.Requête wordpress complexe avec champ personnalisé conditionnel

Mon premier plan, les messages montrent que avec le champ EVENT_DATE, est réussi:

<?php 
$args = array 
    (
    'showposts' => 10, 
    'meta_key' => 'event_date', 
    'meta_value' => '', 
    'meta_compare' => '!=' 
); 
query_posts('$args'); 
?> 

Mais je ne sais pas comment procéder d'ici et filtrer uniquement les événements à l'avenir. Bien sûr, je peux filtrer plus tard dans la boucle while, mais cela ne sonne pas comme une solution propre.

S'il est possible de les trier par date, ce serait encore plus étonnant, mais sinon, je vais tout faire dans un tableau et calculer l'ordre à partir de là.

L'utilisation d'un horodatage au lieu de yyyymmdd n'est pas une solution, car cela nécessitera beaucoup d'éducation pour les éditeurs.

J'espère que quelqu'un peut me diriger dans la bonne direction. Merci d'avance!

Répondre

2

Taper votre question aide toujours. Je l'ai! Merci de lire de toute façon!

Voici ma solution, stupide que je ne figure pas cela avant:

<?php 
$args = array 
(
'showposts' => 10, 
'meta_key' => 'event_date', 
'order' => 'ASC', 
'orderby' => 'meta_value', 
'meta_value' => date("Ymd", date("U")-3600*24), 
'meta_compare' => '>' 
); 
query_posts($args); 
?> 
+0

Congrats sur le découvrir :) - Vous devez envoyer votre solution comme une réponse que d'autres puissent en profiter! Sur stackoverflow vous êtes autorisé à accepter votre propre réponse comme la bonne. – Cam

+0

Édité mon message ;-). – dirk

Questions connexes