2016-02-08 2 views
0

У меня есть 2 пользовательских столбца в разделе пользователей в слове «имя магазина» и «дата». Эти 2 сохранены в таблице users_meta в БД, как я могу показать данные в User список admin, отсортированный по «Store Name», а затем «Date». Мой текущий код до сих пор, чтобы добавить заголовок столбца и получить их из user_meta в разделе пользователей, следующий.Как сортировать по пользовательскому столбцу в разделе пользователей в worpdress

Темы Function.php

/* Adds a store name and date column to the user display dashboard. 
* 
* @param $columns The array of columns that are displayed on the user dashboard 
* @return   The updated array of columns now including zip codes. 
*/ 
function theme_add_user_Store_name_column($columns) { 

$columns['Store_name'] = __('Store name', 'theme'); 
$columns['DATE'] = __('Date', 'theme'); 
return $columns; 

} // end theme_add_user_Store_name_column 
add_filter('manage_users_columns', 'theme_add_user_Store_name_column'); 
/** 
* Populates the store name and date column with the specified user's store name. 
* 
* @param $value  An empty string 
* @param $column_name The name of the column to populate 
* @param $user_id The ID of the user for which we're working with 
* @return   The store name associated with the user 
*/ 
function theme_show_user_Store_name_data($value, $column_name, $user_id) { 

if('Store_name' == $column_name) { 
    return get_user_meta($user_id, 'Store_name', true); 
} 

if('DATE' == $column_name) { 
    return get_user_meta($user_id, 'DATE', true); 
}// end if 

} 
// end theme_show_user_Store_name_data 
add_action('manage_users_custom_column', 'theme_show_user_Store_name_data', 10, 3); 

ответ

0

Используйте следующий код для сортировки таблицы пользователей в соответствии с пользовательской метой поля, Это используется для одного столбца, вы можете изменить его, чтобы добавить второе поле, а также.

// 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

Пожалуйста, сообщите, должен ли я добавить его в тему functions.php или в users.php? –

+0

Пожалуйста, добавьте это в fucntion.php – PHPExpert

+0

Я применил ваш код, который сработал, но не идеален. Мои имена магазинов похожи на boca, knoxville, orlando, поэтому в этом случае по умолчанию это должно быть в порядке, например, boca, knoxville, orlando и когда я нажимаю это должно быть отменено, в настоящее время это происходит, как ноксвилл, орландо, бока в порядке по порядку и в соответствии с его бока, орландо, ноксвилл. –

Смежные вопросы