Restringir acceso a usuarios no registrados en WordPress

Inicio » Tecnología » Diseño Web » Restringir acceso a usuarios no registrados en WordPress

En el foro de Ayuda WordPress, preguntaba si existía una forma para restringir el acceso a ciertas páginas como una página de registro, perfil, publicación de artículos, etc.; que hayan sido personalizadas para mostrarse en el front-end, y donde es necesario que el usuario haya iniciado sesión para pueda ser visualizada.

Si bien es cierto me respondí en el mismo foro, al parecer están teniendo problemas que no permiten la visualización de código. En el repositorio de WordPress existen plugins como WP-Members que te pueden facilitar dicha tarea, sin embargo yo soy de las personas que prefieren utilizar código directamente para realizar ciertas funciones.

Para este caso lo que tenemos es que realizar lo siguiente:

Al acceder a la página en cuestión, identificar si el usuario ha iniciado sesión y una vez hecha esta verificación redireccionar al usuario a la página de login si no se la logeado o dejarle ver el contenido si lo ha hecho; para ello lo primero que debemos realizar es insertar el siguiente código en el archivo functions.php del theme:

Lo que hace la función es lo que ya comentaba, primero verifica si el usuario ha iniciado o no sesión, si no lo ha hecho lo redirecciona a la página de logeo, la cual pueder ser cambiada si deseas redireccionarle a otra ubicación.

Una vez que tengamos la función implementada lo siguiente que tenemos que hacer es modificar nuestro archivo page.php e insertar la siguiente función:

Como podrán apreciar en la función anterior lo que hacemos es verificar que si estamos en la página en la que deseamos restringir el acceso, se cargue la función de restricción, caso contrario, bueno, se deja en blanco.

En una plantilla de página personalizada se puede implementar de la siguiente forma:

El funcionamiento de dicha función la pueden observar en esta página con solo acceder a una URL que es mostrada únicamente a usuarios registrados como es:

http://www.cyberdocentes.com/escritorio ó http://www.cyberdocentes.com/post-new

Actualización de función:

Hace poco estaba diseñando el theme de Trewa Mawida, donde el cliente solicitaba que el usuario tendría que iniciar sesión si o si, para poder ingresar a los diversos apartados de la web; el problema supuestamente estaría resuelto utilizando la función indicada líneas arriba, sin embargo este no fue el caso, ya que no funcionaba tal y como deseábamos; la solución en realidad es bastante sencilla, basta con colocar la siguiente función en la llamada al encabezado de la página.

Restringir acceso a todas las páginas:

El siguiente código ha sido colocado en el archivo page.php; lo que hace es determinar si el usuario ha iniciado sesión, caso contrario es redireccionado a la página de inicio de sesión.

Se pueden hacer diferentes variaciones:

En este caso estamos redireccionando al index, debido a que se ha preparado el archivo index.php como página de inicio de sesión.

Si tienen alguna observación o sugerencia, es bienvenida.

Saludos.

Probando si se muestra seleccin de Google Adsense

2 respuestas a “Restringir acceso a usuarios no registrados en WordPress”

  1. SAUL PEREZ TIRZO dice:

    Tienes mucha razón, se vuelve más práctico codificar a mano esta característica, muchas gracias por el aporte.

  2. Información Bitacoras.com

    Valora en Bitacoras.com: En el foro de Ayuda WordPress, preguntaba si existía una forma para 20, etc., donde es necesario que el usuario haya iniciado sesión para pueda ser visualizada. Si bien es cierto me respondí en el mismo foro, al parecer e…

Deja un comentario