2012-07-31 4 views
-1

J'ai donc un type de message personnalisé appelé "Evénements". Dans chaque événement, j'ai un champ personnalisé appelé "start_time_date" qui renvoie une date comme "08/01/12". Comment trier ces messages pour renvoyer les messages afin que les messages soient triés par start_time_date dans un ordre croissant (start_time_dates plus proche de la date actuelle s'affiche en premier).Comment trier la requête WordPress par une date personnalisée?

Voici mon code actuel:

<? query_posts("cat=$currentID&showposts=100"); ?> 
<? if (have_posts()) : ?> 
    <? while (have_posts()) : the_post(); if (time() < strtotime(get('end_time_date'))) :?> 

     <? $originalDate = get('start_time_date'); $newDate = date("M j, Y", strtotime($originalDate)); ?> 
     <div class="post">Some Post Data</div> 

    <? endif; endwhile; ?> 
<? endif; ?> 

Répondre

1

Avez-vous essayé quelque chose comme:

<? query_posts("cat=$currentID&showposts=100&orderby=date&order=asc"); ?> 

Je ne sais pas exactement ce date est dans les colonnes de base de données, mais il y a quelque chose comme ça. De plus, l'ordre pourrait devoir changer mais je ne pense pas que ce soit important.

Modifier

j'ai fait quelques recherches et &orderby=date&order=asc est correcte pour la date et la commande.

Désolé, avez-vous lu Displaying Posts Using a Custom Select Query dans le codex WordPress?

Ils ont également ajouté query_posts('&meta_key=popularity&orderby=meta_value');meta_key est le nom de votre champ personnalisé.

trouvés ici: Class Reference/WP Query

+0

Oui. Cela trie seulement par la date de publication WordPress par défaut. J'essaie de trier par un champ de date personnalisée – raeq

+0

J'ai mis à jour ma réponse pour inclure un lien vers un article. – Biotox

+0

Merci. Ça a marché – raeq

1

Utilisez un champ méta qui stocke une date dans un format mysql dire 2012-08-02 pour ce poste. Peut-être envisager d'utiliser le sélecteur de date jquery pour rendre ce format pour vous.

Ce message, enregistré lors de l'enregistrement, devrait maintenant contenir une ligne dans la table wp_postmeta.

$results = new WP_Query(array('meta_key' => 'date', 'orderby'=> 'meta_value'));