Cuando trabajamos en el desarrollo o rediseño de una web WordPress, es fundamental controlar quién puede ver el sitio antes de su publicación. Tanto si quieres que solo los administradores accedan al sitio, como si prefieres mostrar el resultado a un cliente (o grupo de usuarios registrados), existen soluciones sencillas en código que te evitan instalar plugins innecesarios.
Por qué evitar los plugins de mantenimiento para tareas simples
Como desarrollador WordPress, soy un convencido de que cuantos menos plugins, mejor. Los populares plugins de “modo mantenimiento” pueden dejar rastros en la base de datos o incluso archivos en el servidor tras ser desinstalados. Además, para tareas tan específicas como bloquear el acceso durante el desarrollo, son claramente un “overkill”.
En vez de cargar tu WordPress con plugins para tareas pequeñas, te propongo dos snippets funcionales, limpios y fácilmente personalizables.
Opción 1: Solo acceso a administradores
Este código permite que únicamente los usuarios con rol administrator puedan ver la web. El resto de usuarios (y visitantes no logueados) serán redirigidos a la URL que definas:
add_action( 'template_redirect', function() {
if ( ! current_user_can( 'administrator' ) && ! is_admin() && ! wp_doing_ajax() ) :
wp_redirect( 'https://www.DOMAIN.com/' );
exit;
endif;
} );
¿Cómo funciona?
- Comprueba si el usuario no es administrador
(! current_user_can( 'administrator' ) ), si no está en el admin( ! is_admin() ), ni es una petición AJAX( ! wp_doing_ajax() ). - Si no cumple estos requisitos, lo redirige fuera del sitio.
Personalización:
Puedes adaptarlo a otros roles. Por ejemplo, para permitir acceso a editores y administradores:
if (
! current_user_can( 'administrator' ) &&
! current_user_can( 'editor' ) &&
! is_admin() && ! wp_doing_ajax()
)
Añade tantos roles como necesites.
Opción 2: Acceso a cualquier usuario registrado
Perfecta si necesitas que tu cliente (o cualquier usuario registrado) pueda ver la web en desarrollo, independientemente de su perfil:
add_action( 'template_redirect', function() {
if ( ! is_user_logged_in() && ! is_admin() && ! wp_doing_ajax() ) :
wp_redirect( 'https://www.DOMAIN.com/' );
exit;
endif;
} );
¿Cuándo la uso? La suelo usar cuando quiero enseñar la web al cliente, especialmente si tiene varios usuarios con diferentes roles (shop manager, editor, etc.).
¿A dónde redirigir?
- Rediseño de web: Yo suelo redirigir a la web en producción.
- Sitio nuevo: Puedes crear una landing HTML sencilla en el mismo servidor y redirigir ahí hasta que la web esté lista.
Recuerda:
Sustituye https://www.DOMAIN.com/ por la URL real donde quieras enviar a los visitantes no autorizados.
Ventajas de este enfoque
- Sin plugins: Nada que limpiar tras activar la web definitiva.
- Personalizable: Puedes filtrar por cualquier rol, incluso añadir condiciones extra si lo necesitas.
- Sencillo y reversible: Solo tienes que eliminar el snippet para abrir el sitio al mundo.
Resumiendo
Usar estos snippets de WordPress para bloquear el acceso durante el desarrollo es la forma más limpia y segura de trabajar. Evitas plugins de mantenimiento que pueden dejar residuos, mantienes el control absoluto sobre quién puede ver el sitio, y te adaptas fácilmente a las necesidades de cada proyecto o cliente.
