umm veamos para los campos personalizados en el perfil y agregar las columnas al listado de usuarios puedes tomar como base lo siguiente:
Código PHP:
Ver original<?php
add_action( 'show_user_profile', 'extra_custom_fields');
add_action( 'edit_user_profile', 'extra_custom_fields');
add_action( 'personal_options_update', 'save_extra_custom_fields');
add_action( 'edit_user_profile_update', 'save_extra_custom_fields');
add_filter( 'manage_users_columns', 'add_status_column');
add_filter( 'manage_users_custom_column', 'manage_status_column',10,3 );
public function extra_custom_fields($user){
?>
<h3>Información del Departamento</h3>
<table class="form-table">
<tr>
<th><label for="tu_campo">Tu Campo</label></th>
<td>
<input type="text" name="custom_id" id="custom_id" value="<?=esc_attr( get_the_author_meta( 'custom_id', $user->ID ) );?>" />
</td>
</tr>
</table>
<?
}
function save_extra_custom_fields( $user_id ){
update_user_meta( $user_id, 'custom_id', $_POST['custom_id'] );
}
function add_status_column($columns)
{
$columns['custom_id'] = "El nombre en el header de la tabla";
return $columns;
}
function manage_status_column($value='', $column_name, $user_id)
{
$user = get_userdata( $user_id );
switch ($column_name) {
case 'custom_id':
return $user->custom_id: '';
break;
}
}
?>
Con esto en el perfil de los usuarios pueden modificar los campos que se agregan. Para el filtrado depende de donde lo quieras hacer, pero para una búsqueda por meta fields puedes usar
WP_User_Query
Saludos!!