Esta 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
Buena publicación ... Me sorprende que esto no esté disponible en las opciones de Visibilidad.
¡Esa es una solución brillante, Doug! Un gran ejemplo de cómo encontrar la solución fácil pero efectiva.
Publicación útil, esta. Tuiteó esta página. Aunque tengo una pregunta.
¿Qué sucede si desea mostrar parte de una página de blog a todos los visitantes, pero la totalidad solo a los suscriptores?
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
gran solución elegante! justo lo que necesitaba, estaba considerando seriamente construir un sistema de inicio de sesión externo.
esto rocas!
Esto NO es fácil de usar para personas que están aprendiendo. ¡No es fácil de usar en absoluto!
Definitivamente no escribí esto en mente para los novatos. ¡Lo siento Devs_mum!
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!
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.
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!
¡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!
O simplemente use, no es necesario cargar todo el objeto de usuario.
http://codex.wordpress.org/Function_Reference/is_user_logged_in
O simplemente use, no es necesario cargar todo el objeto de usuario.
http://codex.wordpress.org/Function_Reference/is_user_logged_in
O simplemente use, no es necesario cargar todo el objeto de usuario.
http://codex.wordpress.org/Function_Reference/is_user_logged_in
O simplemente use, no es necesario cargar todo el objeto de usuario.
http://codex.wordpress.org/Function_Reference/is_user_logged_in
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.
O simplemente use, no es necesario cargar todo el objeto de usuario.
http://codex.wordpress.org/Function_Reference/is_user_logged_in
O simplemente use, no es necesario cargar todo el objeto de usuario.
http://codex.wordpress.org/Function_Reference/is_user_logged_in
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?
¡Muchas gracias!
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?
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.
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
Puede poner un enlace después de la declaración else donde tenemos "Lo sentimos ..." arriba.
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.
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.
Esto no es un truco, utiliza las funciones de la API de WordPress y no elude ninguna seguridad ni accede a la sesión o cookie directamente.
muchas gracias usé la declaración if para hacer un contenedor div si el usuario es miembro
tu solución fue genial