Como ocultar (remover) os menus WordPress na área de administração?

  

2
Início do tópico

Para um projeto WordPress, gostaria de ocultar (remover) um determinado menu (ou menus no futuro) na área do painel de controlo do WP (a área de administração);

Por exemplo: Menu de mensagens;

Como é que o posso fazer?

Preferia utilizar algum código PHP como function, uma vez que tenho um tema filho e posso modificar o ficheiro functions.php para ele.

Agradecimentos

P.s. Em baixo está uma captura de ecrã do menu wordpress que pretendo ocultar:

como ocultar o menu wordpress no código functions

1 Resposta
1

No tema WordPress do seu filho, no ficheiro functions.php, adicione o seguinte código:

/* Remove menus from the WordPress dashboard*/
function wpdocs_remove_menus() {
    remove_menu_page('index.php'); //Dashboard
    remove_menu_page('edit.php'); //Posts
    remove_menu_page('upload.php'); //Media
    remove_menu_page('edit.php?post_type=page'); //Pages
    remove_menu_page('edit-comments.php'); //Comments
    remove_menu_page('themes.php'); //Appearance
    remove_menu_page('plugins.php'); //Plugins
    remove_menu_page('users.php'); //Users
    remove_menu_page('tools.php'); //Tools
    remove_menu_page('options-general.php'); //Settings
    remove_menu_page('edit.php?post_type=project'); //Projects
}
 
add_action('admin_menu', 'wpdocs_remove_menus');

Utilizei o menu_administrador Gancho WordPress (linha #16);

No seu caso, pode ver o código na linha #4 - para o menu Posts.

Também é possível carregar e ver esta ligação


Para menus que são NÃO relacionadas com o núcleo WordPress (Páginas, Posts, etc.), pode também utilizar o admin_init (na linha 8 abaixo) hook;

Nesse caso, tem de escrever a pasta ou o ficheiro do plugin ou do tema;

Veja a captura de ecrã do que quero dizer (veja a linha 4 para o plugin Yoast WP):

ocultar o plugin ou menu ou tema wordpress

Aqui estou eu a esconder-me:

  • Menu do tema Divi
  • Menu WP Yoast SEO
  • Plugin do registo de actividades

Eis o exemplo (ver os comentários no código abaixo):

/* Hide plugin/theme/menu in the WordPress dashboard area */
function wpdocs_remove_menusTwo() {
    remove_menu_page('et_divi_options'); //Divi WP Theme
    remove_menu_page('wpseo_dashboard'); //Yoast SEO WP Plugin
    remove_menu_page('activity_log_page'); //Activity Log WP Plugin
}
 
add_action('admin_init', 'wpdocs_remove_menusTwo');

Além disso, se quiser que um determinado utilizador (no meu caso, administrador com id=1) NÃO PODER para ver um menu (gerado por um plugin), ver o código abaixo (ver linha #3):

/* Hide plugin/theme/menu in the WordPress dashboard area */
function wpdocs_remove_menusTwo() {
    if (get_current_user_id() == 1) {
        remove_menu_page('activity_log_page'); //Activity Log WP Plugin
    }
}
 
add_action('admin_init', 'wpdocs_remove_menusTwo');
Partilhar: