Como remover itens do menu de administração do WordPress programaticamente sem plug-in

Publicados: 2020-01-20

Como remover itens do menu de administração do WordPress programaticamente Os menus do painel do WordPress são uma maneira muito útil de contornar as diferentes seções do painel de administração, mas às vezes podem ser um incômodo ou indesejados. Em particular, quando você estiver usando o WordPress como um sistema de gerenciamento de conteúdo para criar um site cliente em vez de blogar, você precisa remover os itens do menu de administração do WordPress que não são necessários.

Uma das maneiras mais fáceis de remover itens do menu de administração do WordPress é usar os plugins disponíveis gratuitamente que podem ocultar os itens do menu de administração por função de usuário ou condicionalmente.

Quando não remover itens do menu de administração do WordPress usando um plug-in

As desvantagens de usar plugins para remover itens do menu de administração do WordPress podem ser a dependência excessiva de desenvolvedores de plugins de terceiros para atualizações consistentes.

Risco de plug-ins de terceiros

Nesse caso, quando você deseja controlar quais menus são exibidos em seu painel do WordPress sem usar um plug-in, este tutorial é o melhor guia para você.

Atualizações Constantes

Outro motivo para remover os itens do menu de administração do WordPress programaticamente são as atualizações constantes que você tem em todos os plugins do WordPress que você instala.

Essas atualizações são importantes, pois melhoram a experiência do usuário, o desempenho e a segurança, mas podem ser muito complicadas, especialmente quando você está lidando com um grande número de sites de clientes.

Vários menus de administração de plugins

Quando você tem tantos plugins instalados em seu site, a maioria vem com menus de administração e você pode querer remover os menus, já que você não está constantemente usando os menus de administração.

Neste post, vou ilustrar como remover itens de menu do WordPress sem usar um plugin. Para você implementar isso em seu site WordPress, você precisa de um pouco de experiência na edição de sites WordPress, especialmente adicionando trechos de código ao arquivo de tema functions.php.

Remover itens do menu de administração do WordPress programaticamente

Eu gosto de começar com um resumo rápido, pois torna mais fácil para os leitores que procuram uma solução rápida em um guia passo a passo. A seguir estão as etapas que você deve seguir para remover os itens do menu de administração do WordPress.

  1. Faça login no seu site WordPress e identifique os itens do menu de administração que você deseja remover
  2. Crie um gancho de ação que se conecte ao evento admin_menu com uma função de retorno de chamada que tenha a lógica de remover os menus de administração do WordPress do seu painel.
  3. A função de retorno de chamada deve usar as funções remove_menu_page ou remove_submenu_page() do WordPress para remover cada um dos itens do menu de administração de destino. Por exemplo, você pode remover o menu de widgets do menu de temas usando este código remove_submenu_page( 'themes.php', 'widgets.php'); ou remova o menu principal do painel com este código – remove_menu_page('index.php');
  4. Alternativamente, você pode usar a função php unset() e acessar os valores da matriz do submenu global para remover cada um dos itens de menu de administração do WordPress direcionados.
  5. Adicione este trecho de código ao tema functions.php e atualize as alterações. Isso removerá com sucesso os itens do menu de administração do WordPress sem usar um plug-in.
  6. Você também pode adicionar este código a uma função em seu plugin personalizado e ele funcionará como funciona no tema functions.php

Como remover os menus de administração do WordPress sem plug-in

A seguir está a abordagem detalhada passo a passo para remover itens do menu de administração do WordPress adicionando código em vez de usar outro plug-in.

Identificar Slug de Itens do Menu Admin

Faça login no seu painel do WordPress e verifique os itens do menu de administração que você deseja remover. Como você pode ver neste exemplo, o menu do painel principal tem o slug index.php .

Esse slug é importante, pois é um dos parâmetros que você adiciona à função remove_submenu_page(), como ilustrarei em breve.

remover menu de administração do wordpress

Entenda como remover a página e remover as funções da página do submenu

Remover função de página

A função remove_menu_page vem com apenas um parâmetro que é o slug de página e remove o menu de administração de nível superior. O parâmetro é uma string, pois é o slug da página que obviamente é uma string e o código geral deve ser o seguinte:

 remove_menu_page( string;$menu_slug;)

Remover função de subpágina

A função remove_submenu_page vem com dois parâmetros, o primeiro que é o slug do menu pai quando você está removendo os submenus e o segundo do slug do submenu que você deseja remover. O código geral deve ser o seguinte:

 remove_submenu_page(string $menu_slug, string $submenu_slug)

Crie um Gancho de Ação para Remover Itens do Menu Admin e/ou do Submenu

O seguinte é um exemplo de um gancho de ação que se conecta ao evento admin_menu e tem uma função de retorno de chamada que chamamos de ' remove_admin_menu_items'

 add_action( 'admin_menu', 'remove_admin_menu_items', 999 );

Crie a função de retorno de chamada para remover itens do menu Admin e/ou do submenu com remove_submenu_page e remove_menu_page ()

Primeiro, na função de retorno de chamada, você precisa obter o array de menus globais com a variável global $ submenu se estiver usando a função unset() .

Em segundo lugar, você adiciona a função remove_submenu_page ou remove_menu_page() visando a página que deseja remover conforme mostrado no código abaixo:

 function remove_admin_menu_items() {        

    remove_submenu_page( 'menu_slug', 'submenu_slug'); 

}

Ou usando unset você pode ter a seguinte função de retorno de chamada

 function remove_admin_menu_items() {

        submenu $ global; 

       unset($submenu['slug de menu pai'][ admin item submenu array index]);

 }

Exemplo de como remover atualizações do item do menu de administração

Quando você faz login no seu painel do WordPress, há um item de menu sobre as atualizações localizadas no menu principal do painel, conforme mostrado na imagem abaixo:

remover menu de administração do wordpress

Ilustrarei como você pode remover este item de menu de administração usando o método discutido acima. Primeiro, o slug do menu pai é index.php e o slug do menu de atualizações é update-core.php

Remover pai e submenu do item do menu de administração do WordPress

Assim, você pode criar o gancho de ação e a função de retorno de chamada para remover todo o item de menu usando a função remove_menu_page() da seguinte maneira:

 // Remove o item do menu principal junto com as subpáginas /submenus

add_action( 'admin_menu', 'remove_admin_menu_items', 999 );

 function remove_admin_menu_items() {

    remove_menu_page('index.php');


 }

Isso removerá todo o menu e os submenus, conforme mostrado na imagem abaixo:

Remover apenas itens do submenu do WordPress

Remover apenas itens do submenu do WordPress

Você pode criar o gancho de ação e a função de retorno de chamada para remover o item de submenu usando a função remove_submenu_page da seguinte forma:

 //Remove as subpáginas ou submenu

add_action( 'admin_menu', 'remove_admin_menu_items', 999 );

function remove_admin_menu_items() {

    remove_submenu_page('index.php','update-core.php' );

}

Isso removerá o submenu especificado no segundo parâmetro da função remove_submenu_page, neste caso, especificamos como ' update-core.php' e o resultado é como mostrado na imagem abaixo:

Usando a função PHP Unset()

Também podemos usar a função unset do PHP para remover os itens do submenu e neste caso, precisamos primeiro acessar o array global $submenu conforme mostrado no código abaixo:

 //adiciona o gancho de ação ao evento admin_menu

add_action( 'admin_menu', 'remove_admin_menu_items', 999 );

//função de retorno de chamada
function remove_admin_menu_items() {

    //Admin menu array->Lista de todos os itens do menu de administração do WordPress estão neste array
    submenu $ global;

    //imprime o array na tela para que possamos ver os itens do menu admin por índice
    
     print('<pre>');
     print_r($submenu);
     print('<pre>');

      // removemos todo o resto exibido na tela para que veja apenas o array de itens do menu admin
      morrer();

}

Este código obtém o array global do submenu e o imprimimos para exibir o array de todos os menus para que possamos escolher o índice de cada um dos itens do menu admin e removê-los como desejarmos.

Neste código, você pode ver o uso das pre tags e da função die() para exibir o código em um formato legível.

Usando a função PHP Unset() wordpress

Remova o item do menu do submenu do WordPress usando Unset

Portanto, o índice de matriz para o submenu update-core é 10 . Então podemos ir em frente e usar a função unset() da seguinte forma:

 // Remove o item do menu principal junto com as subpáginas usando unset

add_action( 'admin_menu', 'remove_admin_menu_items', 999 );

function remove_admin_menu_items() {

    submenu $ global;

       unset($submenu['index.php'][0]); //remove o menu de nível superior index.php (menu do painel - menu inicial)
      unset($submenu['index.php'][10]); // remove o submenu update-core.php (menu de atualizações)


}

Os resultados serão os mesmos do uso da função remove_submenu_page do WordPress.

Remova o item do menu de administração do WordPress usando Unset

Também podemos remover a página de nível superior e o submenu usando a função unset segmentando cada uma dessas páginas:

Remova o item do menu de administração do WordPress usando Unset

O código deve ser o seguinte:

 //. Remova o item do submenu principal usando unset

add_action( 'admin_menu', 'remove_admin_menu_items', 999 );

function remove_admin_menu_items() {

   submenu $ global;

   unset($submenu['index.php'][10]);


}

O resultado será remover qualquer uma das páginas, pois não configuramos no código:

Como remover itens do menu de administração do WordPress programaticamente sem plugin

Empacotando

Neste post, cobrimos extensivamente as duas principais maneiras que você pode usar para remover itens do menu de administração do WordPress e limpar seu painel do WordPress. Se você é um desenvolvedor do WordPress, pode reutilizar este código e copiá-lo facilmente, confira minha essência e pode me seguir no GitHub para mais atualizações futuras. Eu também compartilhei vários outros trechos aqui – WP-Snippets . Espero que agora você possa remover os itens de administração do WordPress que não deseja do seu menu.