此代码是按管理页面中的ACF字段排序的。它实际上按自定义字段过滤,但不按顺序排序。
字段中的数据是字符串而不是数字,因此我认为orderby meta\\u值是正确的。我确保这个键不是空的,我尝试了所有这些术语(desc、desc、asc、asc)
$query->query_vars[\'order\']
function my_author_filter_results($query){
global $pagenow;
if ( $pagenow === \'edit.php\' ) {
if(isset($_GET[\'custom_field_order\'])){
$custom_field_order = sanitize_text_field($_GET[\'custom_field_order\']);
$order = sanitize_text_field($_GET[\'order\']) ;
if($custom_field_order){
$query->query_vars[\'meta_key\'] = $custom_field_order;
$query->query_vars[\'orderby\'] = \'meta_value\';
$query->query_vars[\'order\'] = strtoupper($order);
}
}
}
}
add_action(\'pre_get_posts\',\'my_author_filter_results\');
PS:它在我的本地主机上运行良好