J'ai filtré les publications, pages et custom_post_types en fonction des valeurs du champ usermeta personnalisé $ current_user à l'aide de pre_get_posts ().
Existe-t-il une méthode/fonction similaire pour modifier get_users () en fonction des valeurs du champ personnalisé $ current_user? J'ai cherché un peu, mais suis arrivé les mains vides.
Par exemple, supposons que je veuille filtrer les résultats de get_users () pour un éditeur avec la méta personnalisée "ville" de "Paris" pour ne renvoyer que la liste des utilisateurs ayant la même valeur dans le champ "ville". De même, un éditeur avec "Rome" dans "ville" ne devrait avoir que des utilisateurs de "Rome", et ainsi de suite ...
Idéalement, j'aimerais que ce paramètre soit ajouté à tous les get_users () effectués par les fonctions du site Web à la fois en back-end et en front-end, tant que l'utilisateur est connecté.
Est-ce possible dans WordPress?
Je vous remercie.
Il y a l'action pre_user_query
appelée dans la méthode prepare_query()
de la classe WP_User_Query
définie dans wp-includes/user.php
:
do_action_ref_array( 'pre_user_query', array( &$this ) );
Supposons que vous avez le $ current_user town sauvegardé dans une variable $ town . La méta-clé est la ville. Vous pouvez utiliser get_users
comme suit:
get_users(
'meta_key' => 'town',
'meta_value' => $town,
'meta_compare' => '='
);