无法按数字/META_VALUE_NUM对user.php上的自定义列进行排序?

时间:2014-11-18 作者:tim daniels

其他一切都很好,但仍然不能按数字排序。

我只是想知道我做错了什么

这是密码

 function add_user_columns( $defaults ) {
 $defaults[\'user_votecount\'] = __(\'Votes\', \'user-column\');
 return $defaults;
 }

 function add_custom_user_columns($value, $column_name, $id) {
  if( $column_name == \'user_votecount\' ) {
    return get_the_author_meta( \'wp__user_like_count\', $id ); }

 add_action(\'manage_users_custom_column\', \'add_custom_user_columns\', 15, 3);
 add_filter(\'manage_users_columns\', \'add_user_columns\', 15, 1);

 function user_sortable_columns( $columns ) {
$columns[\'user_votecount\'] = \'Votes\';
return $columns;
 }

 add_filter( \'manage_users_sortable_columns\', \'user_sortable_columns\' );

 function user_column_orderby( $vars ) {
    if ( isset( $vars[\'orderby\'] ) && \'user_votecount\' == $vars[\'orderby\'] ) {
    $vars = array_merge( $vars, array(
        \'meta_key\' => \'wp__user_like_count\',
        \'orderby\' => \'meta_value_num\',
        \'order\'     => \'asc\'
    ) );
}
return $vars;
 }
 add_filter( \'request\', \'user_column_orderby\' );

1 个回复
SO网友:tim daniels

不要使用“请求”功能,而是使用以下功能:

add_action(\'pre_user_query\', \'user_column_orderby\');
function user_column_orderby($userquery){
if(\'Votes\'==$userquery->query_vars[\'orderby\']) {
global $wpdb;
$userquery->query_from .= " LEFT OUTER JOIN $wpdb->usermeta AS alias ON ($wpdb-   >users.ID = alias.user_id) ";
$userquery->query_where .= " AND alias.meta_key = \'wp__user_like_count\' ";
$userquery->query_orderby = " ORDER BY alias.meta_value ".($userquery->query_vars["order"] == "ASC" ? "asc " : "desc ");
}
}

结束

相关推荐

如何使用Add_Query_var覆盖orderby

所以我希望有一个档案,以随机顺序显示其帖子。<?php $query = new WP_Query($query_string.\"&orderby=rand\"); ?> 但如果用户选择,他们也可以通过单击按钮以不同的方式排列帖子。<?php $sort_date = add_query_arg(array(\'orderby\'=>\'date\',\'order\'=>\'asc\'));