Estoy usando el complemento Register Plus Redux para aumentar un formulario de registro con campos de metadatos personalizados. Estos campos se muestran en la parte inferior de la página de detalles de registro de cada usuario y se pueden recuperar con get_the_author_meta.
Además, puedo crear columnas en el panel Usuario (la vista de lista) y hacer que estas columnas se puedan ordenar. El problema es que, cuando hago clic en el encabezado de la columna personalizada, el valor orderby = en la URL parece ignorarse. Dicho de otra manera, parece que la consulta que genera la vista de lista de usuarios no incluye los metadatos personalizados (por ejemplo, ¿tal vez requiera una declaración de unión si los metadatos no están en el lugar habitual para los datos del usuario?). Parece que he perdido un paso.
Aquí está mi código para crear las columnas 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);`
Y aquí está mi código para hacer que estas columnas se puedan ordenar:
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' );`
¿Alguna idea de cómo puedo actualizar la consulta que genera la lista de usuarios para que incluya la clasificación por mis campos personalizados? O, si ese no es el problema, ¿cómo hacer que los encabezados de columna personalizados ordenen la lista de usuarios al hacer clic?
Gracias.