Você está procurando uma maneira de restringir o acesso a itens de menu com base no nome de usuário? Embora provavelmente exista um plugin para isso, criamos um trecho de código rápido que você pode usar para restringir itens do menu de administrador por nome de usuário no WordPress.
Instruções:
Tudo o que você precisa fazer é adicionar este código ao arquivo functions.php do seu tema ou a um plugin específico do site:
function remove_menus()
{
global $menu;
global $current_user;
get_currentuserinfo();
if($current_user->user_login == 'username')
{
$restricted = array(__('Posts'),
__('Media'),
__('Links'),
__('Pages'),
__('Comments'),
__('Appearance'),
__('Plugins'),
__('Users'),
__('Tools'),
__('Settings')
);
end ($menu);
while (prev($menu)){
$value = explode(' ',$menu[key($menu)][0]);
if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
}// end while
}// end if
}
add_action('admin_menu', 'remove_menus');
Observação: Se esta é a sua primeira vez adicionando snippets de código no WordPress, consulte nosso guia sobre como adicionar snippets de código corretamente no WordPress, para não quebrar acidentalmente seu site.
Se você gostou deste trecho de código, considere conferir nossos outros artigos no site, como: 27 melhores temas WordPress para negócios para o seu site e como criar um formulário de doação WordPress.
Olá, você tem um método para ocultar o menu de um plugin específico e permitir outros? Preciso restringir um usuário (DB_manager) para que ele possa gerenciar apenas o plugin Form Database e nada mais no painel de administração.
Obrigado, mas parece que não funciona para tipos de postagem personalizados. Alguma sugestão?
Já vi isso antes. Muito útil, exceto que não parece funcionar com menus que incluem espaços, como:
__(‘Algum Menu’)
Eu tentei alguns caracteres especiais diferentes, como sublinhados, espaço sem quebra, etc., mas não parece resolver. Também ajustei a prioridade, mas parece que esta função não reconhece espaços no array. Alguma ideia?
Olá Bryan,
Você pode querer usar este método
http://codex.wordpress.org/Function_Reference/remove_menu_page
Você pode então usar “remove_menu_page” e “remove_submenu_page”
você poderia então perder o while, algo como: http://pastebin.com/8ShwZ5rg
Eu não testei isso, mas deve funcionar.
Este trecho apenas oculta itens de menu da tela, mas não restringe o acesso por URL.
alguma maneira de remover um recurso de administração de plugin, especificamente eShop, do Painel de Administração.
Este método pode funcionar melhor para você,
http://codex.wordpress.org/Function_Reference/remove_menu_page