使用get_posts()
,我需要先检索某一天的帖子(这一天是由自定义字段设置的 - 只是日期,而不是时间)。我通过使用元键/值来完成此操作。然后,我需要根据一天中的时间来订购这些帖子(这是一个单独的自定义字段,只是时间,而不是日期)。所以基本上我需要提取所有属于某一天的事件,并根据时间对它们进行排序。
首先,我使用自定义字段抓住这一天:
if ( get_field('festival_day') ) {
$day_stamp = get_field('festival_day');
}
然后我为查询设置我的参数:
$args = array(
'posts_per_page' => -1,
'post_type' => 'event',
'meta_key' => 'event_date',
'meta_value' => $day_stamp
);
$events = get_posts( $args );
那么..问题是,如何查询其他自定义字段(这是开始时间),然后按那个时间排序?时间字段键为event_start_time
。
谢谢!
答案 0 :(得分:0)
您可以使用WP_Query
来检索您的活动,您可以查询以下内容:
$args = array(
'post_type' => 'event',
'order' => 'DESC',
'orderby' => 'meta_value',
'meta_key' => 'event_start_time',
'meta_query' => array(
array(
'key' => 'event_start_time',
'value' => 'yourValue_here',
'compare' => '>='
),
array(
'key' => 'event_date',
'value' => $day_stamp,
'compare' => '='
)
)
);
$query = new WP_Query( $args );
UNTESTED 但它应该有用。
答案 1 :(得分:0)
Check this code, it should work to sort your post according to time from resulting post of day.
$args = array(
'post_type' => 'post',
'posts_per_page' => -1,
'meta_key' => 'event_start_time',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query'=> array(
array(
'key' => 'event_date',
'value' => $day_stamp,
'compare' => 'IN'
)
)
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) {
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>'. get_the_title().'</li>';
}
echo '</ul>';
} else {
// no posts found
}