我有一个元数据列表,我正在使用WP_Query和meta_key对ASC进行排序,但是任何带有连续零的数字都会出现在列表的底部,我希望它出现在顶部。这可以使用WP_Query实现吗?
下面是一个数据示例:
10:00
11:00
12:00
09:00在这些时间的上下文中,09:00应该出现在顶部。
我使用pre_get_posts来修改查询,因为页面也使用了FacetWP,它并不总是与WP_Query配合得很好。其代码为:
function events_query( $query ) {
if( is_post_type_archive('events') ) {
$query->set( 'posts_per_page', -1 );
$query->set( 'meta_key' , 'start_time' );
$query->set( 'orderby' , 'meta_value' );
$query->set( 'order', 'ASC' );
}
}
add_filter( 'pre_get_posts', 'events_query' );发布于 2018-07-26 17:00:12
请使用以下代码按数值查询您的帖子
function events_query( $query ) {
if( is_post_type_archive('events') ) {
$query->set( 'post_type', 'event' );
$query->set( 'posts_per_page', -1 );
$query->set( 'meta_key' , 'start_time' );
$query->set( 'meta_type' , 'NUMERIC' );
$query->set( 'orderby' , 'meta_value_numeric' );
$query->set( 'order', 'ASC' );
}
return $query;
}
add_filter( 'pre_get_posts', 'events_query' )我已经测试过了,希望这能有所帮助。
发布于 2018-07-26 17:01:04
我还没有测试它,但是尝试下面的代码,它应该可以工作。
function events_query( $query ) {
if( is_post_type_archive('events') ) {
$query->set( 'post_type', 'event' );
$query->set( 'posts_per_page', -1 );
$query->set( 'meta_key' , 'start_time' );
$query->set( 'orderby' , 'meta_value_num' );
$query->set( 'order', 'ASC' );
}
return $query;
}
add_filter( 'pre_get_posts', 'events_query' );https://stackoverflow.com/questions/51534574
复制相似问题