我已将默认管理员“用户”列编辑为具有两个自定义列,即来自我创建的自定义帖子类型的“交易数量”和“最新交易”。我不希望将这些列填充为自定义元框字段的数据,因为这似乎为用户创建了不必要的选项,并且我不希望用户能够编辑这些字段。
添加列后,我用自定义查询填充它们,例如:
function test_modify_user_table_row( $val, $column_name, $user_id ) {
global $wpdb;
$user = get_userdata( $user_id );
$userID = $user->id;
$query_for_number_of_transactions = $wpdb->get_results(
"
SELECT COUNT(post_author) AS number_of_transactions FROM wp_posts WHERE post_type='club_orders' AND post_author=$userID;
"
);
$query_for_latest_transaction = $wpdb->get_results(
"
SELECT DATE_FORMAT((MAX(post_date)), '%M %e %Y') AS latest_transaction FROM wp_posts WHERE post_type='club_orders' AND post_author=$userID;
"
);
// Display the query data into custom columns
$er_qm_number_query_result = $query_for_number_of_transactions[0];
$er_qm_transaction_query_result = $query_for_latest_transaction [0];
switch($column_name){
case 'latest_transaction':
return $er_qm_transaction_query_result->latest_transaction;
break;
case 'number_of_transactions':
return $er_qm_number_query_result->number_of_transactions;
break;
default:
}
return "Error";
}
add_filter( 'manage_users_custom_column', 'test_modify_user_table_row', 10, 3 );
上面的代码有效并显示了我想在这些列中显示的数据。但是,我遇到的问题是当我尝试使任一列可排序时。我从谷歌搜索中找到了很多关于使自定义元框字段填充的自定义列可排序的材料,但没有关于如何使自定义查询填充的列可排序的内容。
这甚至可能吗,还是我必须创建自定义元框并以某种方式将它们设为只读才能对这些数据进行排序?