Я использую плагин Register Plus Redux для дополнения формы регистрации настраиваемыми полями метаданных. Эти поля отображаются внизу каждой страницы сведений о записи пользователя, и их можно получить с помощью get_the_author_meta.
Кроме того, я могу создать столбцы на панели «Пользователь» (представление списка) и сделать эти столбцы сортируемыми. Проблема в том, что, когда я нажимаю на заголовок пользовательского столбца, значение orderby = в URL-адресе кажется игнорируемым. Другими словами, кажется, что запрос, который генерирует представление списка пользователей, не включает настраиваемые метаданные (например, возможно, он требует оператора соединения, если метаданные не находятся в обычном месте для пользовательских данных?). Такое ощущение, что я пропустил шаг.
Вот мой код для создания пользовательских столбцов:
//add columns to User panel list page
function add_user_columns( $defaults ) {
$defaults['company'] = __('Company', 'user-column');
$defaults['title'] = __('Title', 'user-column');
return $defaults;
}
function add_custom_user_columns($value, $column_name, $id) {
if( $column_name == 'company' ) {
return get_the_author_meta( 'company_name', $id );
}
if( $column_name == 'title' ) {
return get_the_author_meta( 'titlefunction', $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['company'] = 'Company';
return $columns;
}
add_filter( 'manage_users_sortable_columns', 'user_sortable_columns' );
function user_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', 'user_column_orderby' );`
Любые идеи, как я могу обновить запрос, который генерирует список пользователей, чтобы он включал сортировку по моим настраиваемым полям? Или, если это не проблема, как сделать так, чтобы пользовательские заголовки столбцов сортировали список пользователей при нажатии?
Спасибо.