¿Alguna vez necesitaste bloquear el área de administración para todos los usuarios que no son administradores? Este fragmento redirigirá a todos los usuarios que no sean administradores de vuelta al dominio principal cuando intenten acceder a la administración de WordPress.
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:
add_action( 'init', 'blockusers_wps_init' );
function blockusers_wps_init() {
if ( is_admin() && ! current_user_can( 'administrator' ) ) {
wp_redirect( home_url() );
exit;
}
}
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 Cómo hacer una copia de seguridad de tu sitio de WordPress fácilmente (paso a paso).
¡Gracias por compartir! Fragmento genial, pero causa problemas con el plugin Ninja Forms cuando quieres enviar un correo electrónico. ¿Algún consejo para eso?
¿No bloquearía esto el ajax que usa no_priv o algún tipo de ajax?
Quiero que el autor pueda acceder a esa página en lugar de solo un administrador (conozco el código, pero necesito ayuda para agregarlo). ¿También es posible acceder solo a las publicaciones y a los medios?
si miras current_user_can y cambias la capacidad a otra cosa, permitirá que otros roles accedan. Ve esta página en el codex de wordpress para ver qué se puede hacer,
http://codex.wordpress.org/Roles_and_Capabilities
Gracias. ¿Hay algún código que pueda agregar para el administrador? ¿Como "si el administrador y el autor pueden" o algo así?
todo lo que un autor puede, un administrador también puede, así que permitir a los autores también permitirá a los administradores.