Restringir páginas en WordPress para requerir un inicio de sesión

Captura de pantalla 2013 07 01 12.23.52 en PM

login_lock.jpgEsta semana, estábamos terminando de implementar un tema personalizado en el sitio de un cliente y solicitaron que construyéramos algún tipo de interacción donde algunas de las páginas estaban restringidas a suscriptores registrados. Al principio, pensamos en implementar complementos de terceros, pero la solución fue bastante simple.

Primero, copiamos la plantilla de la página en un nuevo archivo (cualquier nombre está bien, solo mantenga la extensión php). En la parte superior de la página, asegúrese de comentar en la página para que pueda verla en el editor de plantillas por su nombre:


A continuación, busque la línea en el código de su página que muestra el contenido. Debe tener un aspecto como este:


Ahora, necesitará ajustar algo de código alrededor de esa línea:

Solo suscriptor Lo sentimos, el contenido al que intenta acceder está restringido solo a suscriptores.

El código comienza verificando la sesión para ver si el usuario ha iniciado sesión en su sitio de WordPress. Si están conectados, se muestra el contenido. Si no han iniciado sesión, el mensaje indica que está intentando acceder a contenido restringido.

Para utilizar la página, deberá seleccionar el Solo suscriptores plantilla de página en la sección avanzada de las opciones de su página (en la barra lateral). Eso restringirá la página a los lectores que hayan iniciado sesión.

Si desea ser realmente elegante, también puede agregar un método de inicio de sesión y cierre de sesión a su barra lateral:

">Cerrar sesión /wp-login.php">Inicio de sesión del cliente

28 Comentarios

  1. 1
  2. 2
  3. 3
    • 4

      Hola partha

      Eso sería bastante simple: podría agregar la misma técnica al encabezado de la página y básicamente decir ... si (no hay ID de usuario Y la página no es igual al nombre de la página), entonces el encabezado remite a la página de inicio de sesión.

      Doug

  4. 5

    gran solución elegante! justo lo que necesitaba, estaba considerando seriamente construir un sistema de inicio de sesión externo.
    esto rocas!

  5. 6
    • 7
      • 8

        No es fácil de usar, pero está bien ... Siento que algunas fotos de lo que se supone que debo hacer ayudarían. De lo contrario ... ¡Voy a probar cosas hasta que funcionen!

        • 9

          copie page.php, cambie el nombre de page2.php e inserte el código anterior, guarde el archivo, cargue de nuevo al contenido / tema / lo que sea que se llame, vaya a la publicación o cambie la página por defecto a page2.php No es necesario crear un nuevo estilo / diseño de página, simplemente copie el que usa y cámbiele el nombre. entonces fullwidth.php es fullwidth2.php así de simple.

      • 10

        Bien, luego de MUCHOS intentos y de ver otros tutoriales en Internet… Me di cuenta de que HACER una nueva plantilla de página es mi problema. Hago uno en un editor de texto e intento subirlo a… ¿dónde? Ni siquiera sé adónde ir. ¡Parece que no puedo encontrar esta ubicación secreta para cargar!

        • 11

          ¡Tan cierto, LaRocque! Necesita tener un programa FTP y acceso a la carpeta de temas de su sitio web para que pueda cargar el archivo allí. Actualmente NO hay forma de hacerlo a través de la pantalla administrativa. Una excepción sería instalar un complemento de "Administrador de archivos" que le permite crear archivos nuevos. ¡Pero ten cuidado! 

  6. 12
  7. 13
  8. 14
  9. 15
    • 16

      Definitivamente puede verificar si un usuario está conectado o no; sin embargo, el método definido anteriormente eventualmente le permitirá usar niveles de permiso si desea personalizar los niveles.

  10. 17
  11. 18
  12. 19

    De acuerdo, voy a morder… ¿Cómo modificarías esto para permitir la verificación de permisos?

    Digamos que aún queremos permitir que cualquiera cree su propio nombre de usuario de "Suscriptor" y publique respuestas.
    PERO, ¿solo otorgamos acceso a la página "Solo suscriptores" a los usuarios especificados por un administrador?

  13. 20
  14. 21

    Douglas: usé tu código, ¡y en su mayor parte funciona muy bien! El problema que tengo es que el enlace Cerrar sesión regresa a un sitio que no existe. De hecho, probé varios códigos de wordpress de toda la web para que el código de cierre de sesión funcione. . . pero el usuario aún permanece conectado y la devolución es //wp-login.php?redirect_to=×>log%20in%20%20%20%20%20%20%20%20%20%20%20%20 % 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20

    ¿Alguna idea?

    • 22

      Parece que puede ser que cuando el código se copió de su navegador, agregó un montón de espacios HTML, Ryan. Copie el código en el Bloc de notas o Textpad y luego cópielo en su plantilla para deshacerse de esas cosas.

  15. 23

    Ok, esto es exactamente lo que necesito hacer, pero tengo una pregunta. Si no es un suscriptor, ¿cómo puedo hacer que aparezca un cuadro de "iniciar sesión" o "suscribirse" para que puedan acceder al contenido?

    Muchas Gracias

  16. 25

    Gracias por el codigo. hará que la gente se enoje conmigo, pero se supone que deben iniciar sesión cuando quieren algo que no les permita a todos el acceso libre para hacer que los archivos sean fáciles de encontrar.

  17. 26

    Parece que este método está sujeto a secuestro de sesión. La cookie de inicio de sesión se agregará mientras se encuentre en el área segura, pero dado que wordpress lo sirve como una cookie no segura, se seguirá sirviendo si el usuario vuelve a navegar a una parte del sitio que no está encriptada.

  18. 28

¿Qué piensas?

Este sitio usa Akismet para reducir el correo no deseado. Descubra cómo se procesan los datos de sus comentarios.