web-dev-qa-db-fra.com

désactiver le champ de recherche de la barre d'administration pour des rôles spécifiques

Je souhaite désactiver le champ de recherche de la barre d'administration lorsque certains utilisateurs appartenant à des rôles spécifiques sont connectés. Je souhaite que le champ de recherche reste disponible pour le rôle "admin", mais pas pour les autres.

Ce message me dit comment supprimer complètement la barre d’administration, mais ne donne aucune information sur la manière de supprimer sélectivement des éléments de celle-ci.

Est-ce que quelqu'un a de l'expérience avec ça?

Merci, jml

1
jml

Juste au cas où quelqu'un trébucherait dessus ... voici comment vous supprimez "recherche" et quelques exemples d'autres choses que vous pouvez supprimer de la barre d'administration:

public function remove_admin_menu_bar_items ($wp_toolbar) {
    $wp_toolbar->remove_node( 'my-sites' );
    $wp_toolbar->remove_node( 'wp-logo' );
    $wp_toolbar->remove_node( 'new-content' );
    $wp_toolbar->remove_node( 'view' );
    $wp_toolbar->remove_node( 'search' );  // remove the search element
    return $wp_toolbar;
}
add_filter( 'admin_bar_menu', 'remove_admin_menu_bar_items' );

Référence du Codex: https://codex.wordpress.org/Function_Reference/remove_node

Et pour répondre complètement à la question, vous pouvez exécuter ce code (à l'aide d'une logique conditionnelle), en commençant par interroger l'utilisateur actuel si vous souhaitez tester un rôle/une capacité spécifique:

$current_user = wp_get_current_user();

$ current_user sera un objet et l’une des propriétés est le (s) rôle (s) de l’utilisateur.

Référence du Codex: https://codex.wordpress.org/Function_Reference/wp_get_current_user

3
C C