Ocultar itens do menu do administrador do WordPress

Esse pequeno tutorial foi feito para você que não gosta de ficar ativando plugins para tudo que vai fazer no WordPress.

Em alguns momentos quando estamos em um desenvolvimento de site WordPress não queremos dar total liberdade para o usuário com nível administrador acessar alguns itens do menu para que não quebre o site, muitos recorrem a plugin outros a filtros e ações no functions.php do tema utilizado em seu WordPress.

Lembre-se, toda e qualquer modificação que for fazer em seu WordPress, faça um backup antes.

Bom, vamos parar de falação e vamos por a mão na massa.

Primeiro é muito importante que você tenha um tema filho instalado e ativado, mais conhecido como theme_child, caso não tenha, localize em seu tema o arquivo functions.php.

Nós estaremos trabalhando com a função wp_get_current_user() para recuperar o usuário logado, no caso o seu.

Mas o que é wp_get_current_user()?

wp_get_current_user() é uma função da plataforma WordPress utilizada para obter o objeto do usuário atualmente autenticado. Essa função é essencial para acessar informações sobre o usuário conectado à sessão.

Quando um usuário faz login no WordPress, um objeto de usuário é criado e associado à sessão ativa. Esse objeto contém várias informações sobre o usuário, como ID, nome de usuário, endereço de e-mail, papel (nível de acesso) e outras informações relevantes.

A função wp_get_current_user() é usada para recuperar todas essas informações do usuário atualmente logado. Ela retorna um objeto WP_User, que é uma instância da classe WP_User no núcleo do WordPress. Você pode usar esse objeto para acessar os detalhes do usuário, verificar permissões e executar ações específicas com base no perfil do usuário logado.

Abaixo eu vou ocultar o acesso a item do menu Tema (Aparência) e Plugins.

// OCULTAR ITENS DO MENU PARA USUÁRIOS QUE NÃO SEJAM LINEHOST
function ocultar_itens_menu_para_nao_linehost()
{
    $restricted = array(
        'themes.php',                   // Aparência
        'plugins.php',                  // Plugins
    );

    // Verifica o nome de usuário do usuário atual
    $current_user = wp_get_current_user();
    $current_username = $current_user->user_login;

    // Verifica se o nome de usuário NÃO é "linehost"
    if ($current_username !== 'linehost') {
        global $menu;

        // Loop para ocultar os itens de menu restritos
        foreach ($restricted as $item) {
            remove_menu_page($item);
        }
    }
}
add_action('admin_menu', 'ocultar_itens_menu_para_nao_linehost');

No código acima eu criei a função ocultar_itens_menu_para_nao_linehost, esse nome pode ser colocado o que você quiser, vale lembrar que tem que alterar ele também na ação (add_action).

Criei também um variável chamada de $restricted, irei utilizar ela logo mais, nesta variável e passei um array com os itens que quero trabalhar, no caso themes.php (Aparência) e plugins.php (Plugins).

Agora comecei a verificar criando mais duas variáveis, $current_user e $current_username.

$current_user eu chamo a função do WordPress wp_get_current_user() que já explicamos acima o seu funcionamento.
$current_username eu verifico o usuário atual que está logado.

Na próxima verificação eu vejo se não for o usuário linehost eu gero o loop (foreach) onde eu aplico finalmente a minha variável de campos $restricted e seus itens as $item.

Feito isso eu aplico a função remove_menu_page($item) que são os itens que listei no meu array da variável $restricted.

Não posso esquecer do meu add_action(adicionar a minha ação), que diz que, ao carregar a função admin_menu eu devo aplicar a função criada ocultar_itens_menu_para_nao_linehost que foi a que eu havia criado acima para que execute todo a verificação e modificações feitas na função.

Espero que esse tutorial possa te ajudar nas suas questões diárias de desenvolvimento.

 

Também pode te interessar

Publicidade