2016-02-08 49 views
0

我正在使用此代碼對admin/users中的用戶列表進行排序。它不工作,因爲它仍然是基於用戶名和電子郵件排序(默認的worpress排序列)我如何只基於我的自定義用戶元鍵和它的值「store_name」而不是默認的單詞對我的用戶列表進行排序按列。排序自定義列在用戶部分在wordpress中不能正常工作

代碼至今

// Register the column as sortable  
function Store_name_column_register_sortable($columns) { 
    $columns['Store_name'] = 'Store_name'; 
    return $columns; 
} 

add_filter('manage_users_sortable_columns', 'Store_name_column_register_sortable'); 

function Store_name_column_orderby($vars) { 
    if (isset($vars['orderby']) && 'Store_name' == $vars['orderby']) { 
     $vars = array_merge($vars, array(
      'meta_key' => 'Store_name', 
      'orderby' => 'meta_value' 
     )); 
    } 
    return $vars; 
} 
add_filter('request', 'Store_name_column_orderby'); 

回答

0

添加順序=> 'ASC' 或 '說明'

function Store_name_column_register_sortable($columns) { 
    $columns['Store_name'] = 'Store_name'; 
    return $columns; 
} 
add_filter('manage_users_sortable_columns', 'Store_name_column_register_sortable'); 

function Store_name_column_orderby($vars) { 
    if (isset($vars['orderby']) && 'company' == $vars['orderby']) { 
     $vars = array_merge($vars, array(
      'meta_key' => 'company', 
      'orderby' => 'meta_value', 
      'order'  => 'asc' 
     )); 
    } 
    return $vars; 
} 
add_filter('request', 'Store_name_column_orderby'); 
+0

http://wpquestions.com/question/showChrono/id/8170參閱本網站 – WisdmLabs

0

所以最後我發現漫長的尋找之後的答案。 我們必須告訴WordPress我們如何分類。在WordPress 4.2中,通過數值進行排序在WP_User_Query中變得更容易。 Here is helpful URL 新代碼:

/** 
* Add sortable columns. 
* 
* @since 1.0.0 
* @return void 
*/ 
function prefix_sortable_columns($columns) { 
$columns['Store_name'] = 'Store_name'; 
$columns['DATE'] = 'DATE'; 
return $columns; 

} 
add_filter('manage_users_sortable_columns', 'prefix_sortable_columns'); 

/** 
* Sort by expire date. Meta key is called 'DATE'. 
* 
* @since 1.0.0 
* @return void 
*/ 
function prefix_sort_by_expiration_date($query) { 
if ('Store_name' == $query->get('orderby')) { 
    $query->set('orderby', 'meta_value'); 
    $query->set('meta_key', 'Store_name'); 
} 
if ('DATE' == $query->get('orderby')) { 
    $query->set('orderby', 'meta_value_num'); 
    $query->set('meta_key', 'DATE'); 
} 
} 
add_action('pre_get_users', 'prefix_sort_by_expiration_date'); 
+0

在你上面的例子中「排序依據」應列您要搜索,然後'meta_key'應該保持爲'meta_value'。 – Buster

相關問題