Записи цикла в таблице, упорядоченной по значению настраиваемого поля

Я пытаюсь создать таблицу для пользовательских событий типа сообщения, в которых у меня есть несколько настраиваемых полей, одна из которых – дата. Я хочу отображать сообщения в таблице и заказывать их по значению даты. Это мой код:

Формат даты : 07/07/2015 (ДЕНЬ / МЕСЯЦ / ГОД)

Прямо сейчас, цикл не работает, и я не знаю, как сделать заказ по дате.

<div class="container"> <div class="row"> <table> <tr> <th>Artista</th> <th>Fecha</th> <th>Ciudad</th> <th>Información</th> </tr> <?php $i = 0;?> <?php while ( have_posts() ) : the_post(); ?> <?php if($i == 0){ echo "<tr>"; }?> <td><?php the_title(); ?></td> <td><?php the_field('fecha_del_evento'); ?></td> <td><?php the_field('lugar_del_evento'); ?></td> <td><?php the_content(); ?></td> <?php $i++;?> <?php if($i == 4){ echo "</tr>"; $i=0;}?> <?php endwhile; ?> <?php if($i < 4) echo '</tr>'; ?> </table> <?php else: ?> <div class="page-header"><h1>Uh Oh!</h1></div> <p>Sorry, for some reason the contents of this page isn't displaying.</p> <?php endif; ?> </div><!-- END OF ROW --> </div><!-- END OF CONTAINER --> 

Я нашел решение, которое отображает сообщения, упорядоченные по значению даты, а также удаляет прошлые.

 <div class="container"> <div class="row"> <table> <tr> <th>Artista</th> <th>Fecha</th> <th>Ciudad</th> <th>Información</th> </tr> <?php $today = current_time('Ymd'); $args = array( 'post_type' => 'evento', 'post_status' => 'publish', 'posts_per_page' => '-1', 'meta_query' => array( array( 'key' => 'fecha_del_evento', 'compare' => '>=', 'value' => $today, ) ), 'meta_key' => 'fecha_del_evento', 'orderby' => 'meta_value', 'order' => 'ASC', ); $query = new WP_Query($args); if ($query->have_posts()) : while ($query->have_posts()) : $query->the_post(); ?> <?php $i = 0;?> <?php if($i == 0){ echo "<tr>"; }?> <td><?php the_title(); ?></td> <?php $i++;?> <td><?php the_field('fecha_del_evento'); ?></td> <?php $i++;?> <td><?php the_field('lugar_del_evento'); ?></td> <?php $i++;?> <td><?php echo get_the_content(); ?></td> <?php $i++;?> <?php if($i == 4){ echo "</tr>"; $i=0;}?> <?php endwhile; ?> <?php if($i < 4) echo '</tr>'; ?> </table> <?php wp_reset_postdata(); ?> <?php endif; ?> </div><!-- END OF ROW --> </div><!-- END OF CONTAINER --> 

Обратите внимание, что этого кода (в правильном запросе, конечно) было бы достаточно, чтобы заказывать сообщения по дате:

 'meta_key' => 'fecha_del_evento', 'orderby' => 'meta_value', 'order' => 'ASC', ); 

У меня есть аналогичная установка относительно того, что вы собираетесь делать. Этот блок кода входит в файл шаблона:

  <?php // get posts $posts = get_posts(array( 'meta_key' => 'date', 'orderby' => 'meta_value_num', 'order' => 'ASC' )); // loop if( $posts ) { foreach( $posts as $post ) { setup_postdata( $post ); // do something } wp_reset_postdata(); } ?> <?php if ( have_posts() ) : ?> <table> <tbody> <tr class="schedule-header"> <th scope="col" class="header-cell schedule-cell">Date</th> <th scope="col" class="header-cell schedule-cell">Time</th> <th scope="col" class="header-cell schedule-cell">Venue</th> <th scope="col" class="header-cell schedule-cell">Address</th> <th scope="col" class="header-cell schedule-cell">Tix</th> </tr> </tbody> <?php endif; ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <?php get_template_part( 'template-parts/content-front-page'); ?> <?php endwhile; else: ?> <h5>Sorry! Either I have been too lazy to put in my show dates or no one is booking me because they're mad at me. Are you mad at me?</h5> <?php endif; ?> </table 

Этот блок кода входит в функции functions.php:

 function my_pre_get_posts( $query ) { // do not modify queries in the admin if( is_admin() ) { return $query; } // only modify queries for 'event' post type if( isset($query->query_vars['post']) && $query->query_vars['post_type'] == 'post' ) { $query->set('orderby', 'meta_value'); $query->set('meta_key', 'start_date'); $query->set('order', 'DESC'); } // return return $query; }