使用高级自定义字段按自定义字段排序自定义WordPress帖子
问题描述:
我想使用高级自定义字段(ACF)按时间排序一组自定义帖子。使用this help page和WP_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事件标题,而不是时间字段。我如何通过创建的时间字段进行排序?谢谢!
答
我有三种选择给你。我没有测试过它们。
Orderby可以接受多个参数。
'orderby' => 'meta_value meta_value_char'
是否将时间存储为数字?然后尝试这些。一次一个,不在一起。
'orderby' => 'meta_value meta_value_num'
'orderby' => 'meta_value_num'
我希望有帮助。
最好。
就是这样! 'meta_value meta_value_char'就是答案。谢谢谢谢! –
没问题,很高兴我能帮到你。介意投票答案? – mpactMEDIA
我试图把它投票,但我没有足够的声望点,如果我在稍后的日期累积它们,我会尽管。 :) –