Como remover itens do menu WordPress

Como remover itens do menu WordPress

Agência Trinity

29 de outubro de 2021

Alguma vez você entregou o site para um cliente e pouco tempo depois ele alterou funções vitais que quebraram o funcionamento do site? Todos já passamos por isso, então vou mostrar um maneira para esconder do painel do cliente campos que possam causar problemas. Siga este passo a passo:

1 – Crie um usuário com a role que preferir, contanto que não seja administrador.

2 – No arquivo functions.php do tema ativo adicione o código abaixo no topo do arquivo:

PS: Você usará apenas o código respectivo ao tema ativo.


/**VARIABLES TEMA PAI */
$servidor = $_SERVER['HTTP_HOST'];
define('DIR', get_template_directory_uri()); // diretório raiz
define('INC', DIR . '/inc'); // biblioteca raiz
define('FUNCTIONS', INC . '/functions'); // diretório de funções

/**VARIABLES  TEMA FILHO*/
$servidor = $_SERVER['HTTP_HOST'];
define('DIR', get_stylesheet_directory()); // diretório raiz
define('INC', DIR . '/inc'); // biblioteca raiz
define('FUNCTIONS', INC . '/functions'); // diretório de funções

3 – Ainda em functions.php adicione esse código ao final do arquivo:


// INCLUDE FUNCTIONS
include_once(FUNCTIONS . "/functions.php");

4 – Crie esses documentos na pasta inc/functions:

  • functions.php

<?php

// hacks de usuário
include_once(FUNCTIONS . '/hacks.php');

 

  • hacks.php

<?php
//Hack Users
$user = wp_get_current_user();
$role = $user->roles[0];

if ($role == 'ROLE_ESCOLHIDA') {

// remove item da barra superior
add_action('wp_before_admin_bar_render', 'wps_admin_bar');
function wps_admin_bar()
{
global $wp_admin_bar;
$wp_admin_bar->remove_menu('wp-logo'); // remove logo wordpress
$wp_admin_bar->remove_menu('comments'); // remove comentários
}

// //remove item dashboard
add_action('admin_menu', 'remove_links_menu', 999);
function remove_links_menu()
{
// remove item da barra lateral
remove_menu_page('index.php'); // remove "painel"
remove_menu_page('upload.php'); // remove "mídia"
remove_menu_page('tools.php'); // remove "ferramentas"
remove_menu_page('themes.php'); // remove "aparência"
remove_menu_page('settings.php'); // remove "configurações"

// remove submenu items (função útil para plugins como woocommerce)
remove_submenu_page('SLUG_DO_MENU', 'SLUG_DO_SUBMENU');

}

add_action('admin_head', 'css_wp_admin_user');
function css_wp_admin_user() {
echo '<style>.subsubsub a .count, .subsubsub a.current .count, .subsubsub .future { display:none !important; }</style>';
}

//dashboard redirect
add_action( 'load-index.php', 'direct_access_wp_dashboard_redirect' );
function direct_access_wp_dashboard_redirect(){
wp_redirect( admin_url( 'edit.php' ) );
}
add_filter( 'login_redirect', 'login_wp_dashboard_redirect', 9999, 3 );
function login_wp_dashboard_redirect( $redirect_to, $request, $user ){
$redirect_to = admin_url( 'LOCAL_ONDE_SERA_REDIRECIONADO' );
return $redirect_to;
}

}

//remove notificação atualizações
function remove_core_updates(){
global $wp_version;return(object) array('last_checked'=> time(),'version_checked'=> $wp_version,);
}
add_filter('pre_site_transient_update_core','remove_core_updates');
add_filter('pre_site_transient_update_plugins','remove_core_updates');
add_filter('pre_site_transient_update_themes','remove_core_updates');

Pronto, agora não precisa mais se preocupar com o usuário acessando funções indesejadas. Lembrando que todas as funções funcionam como exemplos, você pode adicionar aquilo que for necessário para seu código.

guest
0 Comentários
Feedbacks em linha
Ver todos os comentários
Open chat
1
Olá 👋
Posso te ajudar?
Clique para nos enviar uma mensagem :)