使用高级自定义字段按升序日期 PHP 数组排序


Sort by ascending date PHP array with Advanced Custom Fields

我正在尝试按最近日期对我的自定义帖子进行排序,但我无法让它工作。我错过了什么吗?

<?php
$args = array(
'post_type' => 'event',
'post_status' => 'publish',
'posts_per_page' => '10',
'meta-key' => 'event_date',
'orderby' => 'meta_value_num',
'order' => 'ASC'
);
$event_loop = new WP_Query( $args );
if ( $event_loop->have_posts() ) :
while ( $event_loop->have_posts() ) : $event_loop->the_post();
  // Set variables
  $title = get_the_title();
  // Output
  ?>
<a class="class" href="<?php echo get_permalink(); ?>"><h2><?php echo $title; ?></h2></a>
<img style="float: right; max-width: 28%;"src="<?php the_field('event_image'); ?>"/><h3>Event Date : <?php the_field('event_date'); ?></h3>

'order' => 'ASC' 表示从最旧到最新。尝试使用

 'order' => 'DESC'

另请注意,您正在订购非日期字段meta_value_num

尝试按要使用的日期字段排序。

例如使用

'orderby' => 'date'

如果您的表格包含每个事件的日期。排序依据需要具有要用于对帖子/事件进行排序的日期类型的列的名称。

在此处查看wp_posts表的示例https://codex.wordpress.org/Database_Description#Table:_wp_posts

此处显示了使用该wp_posts的查询示例

WP_Query('orderby=date&order=DESC')