Estou usando o plug-in Register Plus Redux para aumentar um formulário de registro com campos de metadados personalizados. Esses campos são exibidos na parte inferior de cada página de detalhes do registro do usuário e podem ser recuperados com get_the_author_meta.
Além disso, sou capaz de criar colunas no painel Usuário (a exibição em lista) e tornar essas colunas classificáveis. O problema é que, quando clico no cabeçalho da coluna personalizada, o orderby = value no URL parece ser ignorado. Em outras palavras, parece que a consulta que gera a exibição de lista de usuários não inclui os metadados personalizados (por exemplo, talvez exija uma declaração de junção se os metadados não estiverem no local habitual para os dados do usuário?). Parece que perdi um passo.
Aqui está o meu código para criar as colunas personalizadas:
//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);`
E aqui está o meu código para tornar essas colunas classificáveis:
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' );`
Alguma idéia de como posso atualizar a consulta que gera a lista de usuários para incluir a classificação por meus campos personalizados? Ou, se esse não é o problema, como fazer com que os títulos das colunas personalizadas classifiquem a lista de usuários quando clicados?
Obrigado.