你不会在meta_value
列,因为存储在那里的值不被视为整数值,但您可以使用类似于使用WordPress back时的方法meta_value_num
要进行排序,基本上需要在数据的前面添加一个数字。
function get_users_ordered_by_meta( $key = \'\', $d = \'ASC\' ) {
global $wpdb;
$d = ( strtoupper( $d ) == \'DESC\' ) ? \'DESC\' : \'ASC\';
if( \'\' == $key )
return;
$r = $wpdb->get_results( $wpdb->prepare( "
SELECT u.ID, u.display_name, u.user_nicename, um.meta_value
FROM {$wpdb->usermeta} um, {$wpdb->users} u
WHERE um.user_id = u.ID
AND um.meta_key = %s
ORDER by (0 + um.meta_value) $d
", $key ) );
return $r;
}
这样就可以对meta-value列进行适当的排序。
我想你可能会喜欢一个函数,这样你就可以在任何需要它的地方调用它,只需将你为用户设置的元键传递给它,并可以选择更改排序顺序。
$yourvar = get_users_ordered_by_meta(\'your-key\');
降序排序。
$yourvar = get_users_ordered_by_meta(\'your-key\', \'desc\');
您将像以前一样返回一个对象数组,因此我假设您知道如何循环该数据并将其用于显示,等等。。。(如果没有,请发表评论)。