1

我想使用高级自定义字段(ACF)按时间排序一组自定义帖子。使用this help pageWP_Query page from the codex,我已经得到了下面的代码,但它只是按照帖子标题排序,我希望它按我创建的自定义字段start_time进行排序。使用高级自定义字段按自定义字段排序自定义WordPress帖子

以下是一些可能的关键的/值的用户可以选择:

一个:上午6点00分

B:上午6时15分

C:上午6:30

d :6:45 am

这里是模板代码的简化版本:

<?php $args = array( 
'post_type' => 'events', 
'posts_per_page' => -1, 
'orderby'   => 'meta_value_char', 
'meta_key'   => 'start_time', 
'order'    => 'ASC' 
); 

$loop = new WP_Query($args); ?> 
    <ul> 
<?php while ($loop->have_posts()) : $loop->the_post(); ?> 

    <li> 
     <?php the_title(); ?>: <?php the_field("start_time"); ?> 
    </li> 

<?php endwhile; ?> 
</ul> 

其输出这样的:

  • A事件:上午7点45
  • B事件:下午4:15
  • Ç事件:上午7点45
  • d事件:下午2:30
  • E事件:上午10点15分

因此,它的订购由th e事件标题,而不是时间字段。我如何通过创建的时间字段进行排序?谢谢!

回答

0

我有三种选择给你。我没有测试过它们。

Orderby可以接受多个参数。

'orderby' => 'meta_value meta_value_char' 

是否将时间存储为数字?然后尝试这些。一次一个,不在一起。

'orderby' => 'meta_value meta_value_num' 

'orderby' => 'meta_value_num' 

我希望有帮助。

最好。

+0

就是这样! 'meta_value meta_value_char'就是答案。谢谢谢谢! –

+0

没问题,很高兴我能帮到你。介意投票答案? – mpactMEDIA

+0

我试图把它投票,但我没有足够的声望点,如果我在稍后的日期累积它们,我会尽管。 :) –

相关问题