Você está procurando uma maneira de redirecionar páginas de administração para qualquer local? Embora provavelmente exista um plugin para isso, criamos um trecho de código rápido que você pode usar para redirecionar páginas de administração para qualquer local no WordPress.
O trecho a seguir permitirá que você redirecione qualquer uma das páginas de administração para qualquer local que desejar com base na capacidade do usuário. Outra opção seria substituir wp_redirect por wp_die("alguma mensagem personalizada"); para exibir uma mensagem em vez de redirecionar.
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 wpsnipp_admin_pages_redirect() {
global $pagenow;
$admin_pages = array(
'edit-tags.php',
'edit-tags.php',
'link-manager.php',
'options-writing.php',
'options-reading.php',
'options-discussion.php',
'options-media.php',
'options-privacy.php',
'options-permalink.php',
);
if(in_array($pagenow, $admin_pages)){
wp_redirect( admin_url('/') ); exit;
}
}
if(!current_user_can('edit_post')){
add_action('admin_init', 'wpsnipp_admin_pages_redirect');
}
Observação: Se esta é a primeira vez que você adiciona trechos de código no WordPress, consulte nosso guia sobre como copiar / colar trechos 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: 15 melhores ferramentas de marketing de conteúdo e como criar um formulário de contato no WordPress.
E se você quiser redirecionar uma URL como esta? admin.php?page=account_page
Talvez você também precise verificar o valor de $_GET['page'].
Você não pode usar current_user_can() quando estiver no escopo global, dentro de um plugin, pois isso causará um erro fatal: Call to undefined function wp_get_current_user().