使用高级自定义字段按自定义字段订购自定义 WordPress 帖子
Order Custom WordPress Posts by Custom Field using Advanced Custom Fields
我正在尝试使用高级自定义字段 (ACF) 按时间订购一组自定义 post。使用 this help page and the WP_Query page from the codex,我得到了下面的代码,但它只按 post 标题排序,我希望它按我创建的自定义字段 start_time
排序。
以下是用户可以选择的一些 key/values:
一个:6:00am
b : 6:15am
c : 6:30am
d : 6:45am
这里是模板代码的简化版本:
<?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:45am
- B 事件:4:15pm
- C 事件:7:45am
- D 事件:2:30pm
- E 事件:10:15am
所以它按事件标题而不是时间字段对 post 进行排序。如何按我创建的时间字段排序?谢谢!
我给你三个选择。我没有测试过它们。
Orderby 可以接受多个参数。
'orderby' => 'meta_value meta_value_char'
时间是用数字存储的吗?然后试试这些。一次一个,不在一起。
'orderby' => 'meta_value meta_value_num'
'orderby' => 'meta_value_num'
希望对您有所帮助。
最佳。
我正在尝试使用高级自定义字段 (ACF) 按时间订购一组自定义 post。使用 this help page and the WP_Query page from the codex,我得到了下面的代码,但它只按 post 标题排序,我希望它按我创建的自定义字段 start_time
排序。
以下是用户可以选择的一些 key/values:
一个:6:00am
b : 6:15am
c : 6:30am
d : 6:45am
这里是模板代码的简化版本:
<?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:45am
- B 事件:4:15pm
- C 事件:7:45am
- D 事件:2:30pm
- E 事件:10:15am
所以它按事件标题而不是时间字段对 post 进行排序。如何按我创建的时间字段排序?谢谢!
我给你三个选择。我没有测试过它们。
Orderby 可以接受多个参数。
'orderby' => 'meta_value meta_value_char'
时间是用数字存储的吗?然后试试这些。一次一个,不在一起。
'orderby' => 'meta_value meta_value_num'
'orderby' => 'meta_value_num'
希望对您有所帮助。
最佳。