web-dev-qa-db-fra.com

Ajouter un filtre personnalisé à la liste des utilisateurs administrateurs

Quelle est la bonne manière d'ajouter un filtre personnalisé (une liste déroulante dans ce cas) à la liste d'utilisateurs admin (wp-admin/users.php)?

Je ne vois aucun filtre ou action permettant de créer une boîte de sélection.

Je sais que je peux l'injecter via javascript, mais j'espère qu'il y a un moyen de le faire du côté PHP.

Je prévois d'utiliser les résultats de ce filtre int, comme indiqué ci-dessous: Comment effectuer une recherche dans tous les méta d'utilisateurs à partir de users.php dans l'admin

1
John

En fait, j'ai trouvé un moyen potentiel (avec WP3.1), mais c'est un peu plus compliqué que d'utiliser des filtres:

Puisque WP3.1 utilise maintenant le WP_List_Class pour générer les pages d’administration, vous pouvez créer votre propre classe My_User_List_Table en héritant de WP_Users_List_Table et dans cette classe substituer la méthode extra_tablenav(). Dans votre propre méthode, vous dupliquez le code de WP_Users_List_Table::extra_tablenav() et ajoutez vos propres éléments.

Ensuite, créez un duplicata de wp-admin/users.php, modifiez-le pour qu'il utilise votre classe et modifiez l'entrée de menu des utilisateurs dans la navigation de l'administrateur pour appeler votre duplicata au lieu de wp-admin/users.php. Je ne suis pas sûr si WP3.1 est maintenant livré avec des méthodes plus faciles pour le faire, alors les solutions de hacky nécessaires pour WP3.0.

Malheureusement, tous ces nouveaux éléments WP_List_Class sont livrés sans action de filtrage ni action de filtre. Cela aurait été si facile s’ils avaient ajouté un appel apply_filters() à _get_list_table(). Grmpf.

0
wyrfel