1

我正在尝试使用高级自定义字段 (ACF) 按时间订购一组自定义帖子。使用这个帮助页面codex 中的 WP_Query 页面,我得到了下面的代码,但它只按帖子标题排序,我希望它按start_time我创建的自定义字段排序。

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

一个 : 早上 6:00

b : 早上 6 点 15 分

c : 早上 6 点 30 分

d : 早上 6 点 45 分

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

<?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>

哪个输出:

  • 活动:上午 7 点 45 分
  • B 活动:下午 4 点 15 分
  • C 活动:上午 7 点 45 分
  • D 活动:下午 2:30
  • E 活动:上午 10:15

所以它是按事件标题而不是时间字段对帖子进行排序。如何按我创建的时间字段排序?谢谢!

4

1 回答 1

0

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

Orderby 可以接受多个参数。

'orderby'  => 'meta_value meta_value_char'

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

'orderby'  => 'meta_value meta_value_num'

'orderby'  => 'meta_value_num'

我希望这会有所帮助。

最好的。

于 2016-03-11T06:30:05.960 回答