J'essaie d'utiliser les variables pre_user_query' to change the query to include some
meta_query`.
Mon objectif est d'afficher uniquement les utilisateurs de la liste s'ils partagent un meta_value
commun avec l'utilisateur actuellement connecté ...
function modify_user_list($query){
$user = wp_get_current_user();
if( ! current_user_can( 'edit_user' ) ) return $query;
$user_id = $user->ID;
$user_branch_number = get_user_meta($user_id, 'user_branch_number', true);
$query->query_vars['meta_key'] = 'user_branch_number';
$query->query_vars['meta_value'] = $user_branch_number;
$query->query_vars['meta_compare'] = '=';
}
add_action('pre_user_query', 'modify_user_list');
Si je print_r
la requête, cela montrera que le query_vars
a été mis à jour de manière appropriée, mais la liste des utilisateurs du panneau d'administration n'est pas affectée - la même ancienne liste de chaque utilisateur.
Vous utilisez pre_user_query
conformément à la documentation WordPress
Se déclenche après l'analyse de WP_User_Query et avant l'exécution de la requête
Ensuite, vous devriez utiliser pre_get_users
, tout comme pre_get_posts
, lorsque vos arguments ont une signification pour WordPress.
pre_get_users
Se déclenche avant l'analyse de WP_User_Query
Remplacez votre crochet par
add_action('pre_get_users', 'modify_user_list');