WP_使用数字数据按ASC查询顺序-零出现在列表末尾



我有一个元数据列表,我正在使用WP_Querymeta_keyASC进行排序,但任何前面为零的数字都会出现在列表的底部,我希望它出现在顶部。这可以使用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' );

请使用以下代码按数值查询您的帖子

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' )

我已经测试过了,希望这会有所帮助。

我还没有测试它,但尝试下面的代码,它应该可以工作。

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' );

最新更新