¿Está buscando una forma de redirigir páginas de administrador a cualquier ubicación? Si bien probablemente exista un plugin para esto, hemos creado un fragmento de código rápido que puede usar para redirigir páginas de administrador a cualquier ubicación en WordPress.
El siguiente fragmento le permitirá redirigir cualquiera de las páginas de administrador a la ubicación que desee según la capacidad del usuario. Otra opción sería reemplazar wp_redirect con wp_die("algún mensaje personalizado"); para mostrar un mensaje en lugar de redirigir.
Instrucciones:
Todo lo que tienes que hacer es agregar este código al archivo functions.php de tu tema o a un plugin específico del sitio:
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');
}
Nota: Si es la primera vez que agregas fragmentos de código en WordPress, consulta nuestra guía sobre cómo copiar / pegar fragmentos de código correctamente en WordPress, para que no rompas accidentalmente tu sitio.
Si te gustó este fragmento de código, considera echar un vistazo a nuestros otros artículos en el sitio como: las 15 mejores herramientas de marketing de contenidos y cómo crear un formulario de contacto en WordPress.
¿Qué pasa si desea redirigir una URL como esta? admin.php?page=account_page
Es posible que también deba verificar el valor de $_GET['page'].
No puede usar current_user_can() cuando está en el ámbito global, dentro de un plugin, porque causará un error fatal: Call to undefined function wp_get_current_user().