2014-06-16 1 views
0

Je suis aux prises avec les problèmes suivants: J'ai installé un plugin (Event Dates). Non, je souhaite que les événements soient publiés sur ma page d'accueil. Je l'ai pour 99,9% de travail. Cependant, le tri ne fonctionne pas.WordPress trier par meta value

Il est trié à la date de publication, mais il doit être trié à la date de l'événement. La date de l'événement est dans la table wp_postmeta mais je n'arrive pas à la trier.

Voici un peu plus d'info:

<?php 
$args=array(
'post_type' => 'tribe_events', 
'post_status' => 'publish', 
'posts_per_page' => 5, 
'meta_key' => '_EventStartDate', 
'orderby' => 'meta_value_num', 
'order' => 'DESC'); 

$my_query = ''; 
$my_query = new WP_Query($args); 
if($my_query->have_posts()) { 
while ($my_query->have_posts()) : $my_query->the_post(); ?> 
<?php $key_2_value = get_post_meta(get_the_ID(), '_EventStartDate', true); ?> 
<?php echo '<div class="ex_agendapost_title">'. 
       date_i18n('d F', strtotime($key_2_value) ).'</div>';?> 
<div class="ex_agenda_event"><a href="<?php the_permalink() ?>" 
     rel="bookmark" title="<?php the_title_attribute(); ?>"> 
    <?php the_title(); ?> &raquo;</a></div> 
<?php 
endwhile; 
} 
wp_reset_query(); 
?> 

Il ne sera pas seulement le tri. Des idées?

M.

Répondre

0

Vous pouvez utiliser orderby dans WP_Query

$query = new WP_Query(array ('post_type' => 'product', 'orderby' => 'meta_value', 'meta_key' => 'price')); 

Reference

+0

En quoi est-ce différent de ce que j'ai déjà? La seule chose qui a changé est la valeur de 'orderby'. Cela ne fait aucune différence – Interactive

+0

ok qu'est ce que vous cherchez? – Mehar

+0

J'ai besoin d'un moyen de trier sur meta_value. Lorsque mes données sont enregistrées dans la base de données, elles ont la valeur suivante: 2014-06-11 08:00:00. Donc je veux 'orderby' => 2014-06-11 08:00:00 – Interactive

0

Voici un exemple qui montrera que les futurs événements datés et dans l'ordre chronologique (les plus récents en premier)

Vous devrez cependant changer le nom du champ et le nom du type de poste:

$currentDate = (int) date('Ymd'); 
$eventsResult = new WP_Query(array ('post_type' => 'event', 'post_status' => 'publish', 'posts_per_page' => '3', 'orderby' => 'meta_value_num', 'meta_key' => 'event_date', 'order' => 'ASC', 'meta_query' => array(array('key' => 'event_date', 'value' => $currentDate, 'compare' => '>', 'type' => 'NUMERIC')))); 
+0

Thnx Je vais vérifier. – Interactive

+0

Je viens de me botter le cul !!! C'est embarrassant. Cela a fonctionné tout le temps. J'ai répercuté la date sans une année. Alors quand je remplissais la calandre avec des dates je suis allé jusqu'en 2018. Parce qu'il n'y a pas d'année publiée j'ai vu des mois dans l'ordre de nov, mai, jan .... mais c'est parce que c'est dans des années différentes. Désolé de perdre votre temps les gars ........ – Interactive

Questions connexes