0
我有一个名为“团队成员”的自定义职位类型以及一些自定义列 - 一个专门设置用于订购自定义职位。我已经设置好了,所以当你第一次访问团队成员标签时,帖子按“团队订单”列进行排序(ASC)。这很好,但是,我遇到了一个小问题,如果点击Team Order列来将排序反转为DESC,似乎并不像Wordpress认识到它们在页面初始加载时已经排序。相反,它会再次查询帖子,并以ASC顺序再次返回它们。然后,如果列标题再次被点击,它将以DESC顺序返回帖子。我怎样才能摆脱点击两次的需要?当页面首次加载时,帖子已经按升序排序。为什么Wordpress会错过这一点,并在第二次以升序返回它们,然后才能最终进入DESC?WordPress的自定义列默认排序
这是我的代码,让我知道如果你想看到更多。由于
//team_members Post Type: sortable columns
add_filter('manage_edit-team_members_sortable_columns', 'team_members_sortable_columns');
function team_members_sortable_columns($columns){
$columns['team_order'] = 'team_order';
return $columns;
}
//team_members Post Type: sortable columns orderby
add_action('pre_get_posts', 'team_members_orderby_columns', 1);
function team_members_orderby_columns($query){
if(!is_admin()){
return;
}
$order = $query->get('team_order');
if($query->is_main_query()){
$query->set('meta_key', 'team_order');
$query->set('orderby', 'meta_value_num');
if($order == ''){
$query->set('order', 'ASC');
}
}
}
谢谢,我给这是一个尝试,但它似乎并不奏效。我相信这可能与$ query-> get('orderby')有关,因为它在首页加载时返回空白。它仅在点击“团队订单”列以手动排序帖子而不是初始页面加载后返回值。任何想法可能会造成这种情况? – sm1215