Aquesta setmana, acabàvem d’implementar un tema personalitzat en un lloc client i ens van sol·licitar que creéssim algun tipus d’interacció en què algunes de les pàgines estiguessin restringides als subscriptors registrats. Al principi, vam pensar en implementar connectors de tercers, però la solució era bastant senzilla.
En primer lloc, hem copiat la plantilla de pàgina en un fitxer nou (qualsevol nom està bé, només cal que mantingueu l'extensió php). A la part superior de la pàgina, assegureu-vos de comentar la pàgina perquè pugueu veure-la a l'editor de plantilles per nom:
A continuació, cerqueu la línia del codi de la pàgina que mostri el contingut. Hauria de ser així:
Ara, haureu d’ajustar una mica de codi al voltant d’aquesta línia:
Només per a subscriptors Ho sentim, el contingut al qual intenteu arribar només es pot restringir als subscriptors.
El codi comença comprovant la sessió per veure si l’usuari ha iniciat la sessió al vostre lloc de WordPress. Si han iniciat la sessió, es mostrarà el contingut. Si no hi ha iniciat la sessió, el missatge indica que esteu intentant arribar a contingut restringit.
Per utilitzar la pàgina, haureu de seleccionar el fitxer Només subscriptors plantilla de pàgina a la secció avançada de les opcions de la pàgina (a la barra lateral). Això restringirà la pàgina als lectors que hagin iniciat la sessió.
Si voleu que us agradi, podeu afegir un mètode d'inici de sessió i de tancament de sessió a la barra lateral també:
">Tancar sessió /wp-login.php">Inici de sessió del client
Bona publicació... Em sorprèn que això no estigui disponible a les opcions de visibilitat.
Aquesta és una solució genial, Doug! Un gran exemple de trobar la solució fàcil, però efectiva.
Publicació útil, aquesta. Ha piulat aquesta pàgina. Tinc una pregunta, però.
Què passa si voleu mostrar part d'una pàgina de bloc a tots els visitants, però la totalitat només als subscriptors?
Hola Partha,
Això seria bastant senzill: podríeu afegir la mateixa tècnica a la capçalera de la pàgina i, bàsicament, dir... si (cap ID d'usuari I pàgina no és igual al nom de la pàgina), aleshores encapçalau-vos a la pàgina d'inici de sessió.
Doug
gran solució elegant! just el que necessitava, estava pensant seriosament en construir un sistema d'inici de sessió extern.
això roques!
Això NO és fàcil d'utilitzar per a persones que estan aprenent. No és gens fàcil d'utilitzar!!!!
Definitivament no vaig escriure això en ment per al nouvingut. Ho sento, Devs_mum!
No és fàcil d'utilitzar, però està bé... Em sembla que algunes imatges del que se suposa que he de fer m'ajudarien. En cas contrari... només provaré coses fins que funcionin!
copieu page.php, canvieu el nom de page2.php i inseriu el codi a sobre, deseu el fitxer, torneu a carregar-lo a contingut/tema/qualsevol que es digui, aneu a la publicació o canvieu el disseny de pàgina predeterminat a page2.php. No cal crear un estil/disposició de pàgina nou, només copieu el que feu servir i canvieu-lo. així que fullwidth.php és fullwidth2.php tan senzill.
D'acord, després de MOLTS intents i de veure altres tutorials a Internet... He descobert que FER una plantilla de pàgina nova és el meu problema. En faig un en un editor de text i intento penjar-lo a... on? No sé ni on anar. Sembla que no trobo aquesta ubicació secreta per pujar!
Tan cert, LaRocque! Heu de tenir un programa FTP i accedir a la carpeta de temes del vostre lloc web per poder pujar-hi el fitxer. Actualment NO hi ha manera de fer-ho a través de la pantalla administrativa. Una excepció seria instal·lar un connector "Gestor de fitxers" que us permeti crear fitxers nous. Aneu amb compte, però!
O simplement utilitzar - no cal carregar tot l'objecte d'usuari.
http://codex.wordpress.org/Function_Reference/is_user_logged_in
O simplement utilitzar - no cal carregar tot l'objecte d'usuari.
http://codex.wordpress.org/Function_Reference/is_user_logged_in
O simplement utilitzar - no cal carregar tot l'objecte d'usuari.
http://codex.wordpress.org/Function_Reference/is_user_logged_in
O simplement utilitzar - no cal carregar tot l'objecte d'usuari.
http://codex.wordpress.org/Function_Reference/is_user_logged_in
Definitivament, només podeu comprovar si un usuari ha iniciat sessió o no; tanmateix, el mètode definit anteriorment us permetrà utilitzar nivells de permís si voleu personalitzar els nivells!
O simplement utilitzar - no cal carregar tot l'objecte d'usuari.
http://codex.wordpress.org/Function_Reference/is_user_logged_in
O simplement utilitzar - no cal carregar tot l'objecte d'usuari.
http://codex.wordpress.org/Function_Reference/is_user_logged_in
D'acord, així que mossegaré... Com ho modificaries per permetre la comprovació dels permisos?
Diguem que encara volem permetre que qualsevol persona creï el seu propi nom d'usuari de "subscriptor" i publiqui respostes.
PERÒ: només donem accés a la pàgina "Només subscriptors" als usuaris especificats per un administrador?
Moltes gràcies !
Douglas (he utilitzat el teu codi) i en la seva majoria funciona molt bé! El problema que tinc és que l'enllaç Tanc de sessió torna a un lloc que no existeix. De fet, he provat diversos codis de wordpress de tot el web per fer que el codi de tancament funcioni. . . però l'usuari encara roman connectat i el retorn és //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?
Sembla que pot ser que quan es va copiar el codi del navegador, s'ha afegit un munt d'espais HTML, Ryan. Copieu el codi al Bloc de notes o al Bloc de text i després copieu-lo a la vostra plantilla per desfer-vos d'aquestes coses.
D'acord, això és exactament el que he de fer, però tinc una pregunta. Si no són subscriptors, com puc fer que aparegui un quadre "iniciar sessió" o "subscriure" perquè puguin accedir al contingut?
Gràcies
Pots posar un enllaç després de la declaració else on hi ha "Ho sentim..." a dalt.
Gràcies pel codi. enfadarà la gent amb mi, però suposen que han d'iniciar sessió quan volen alguna cosa que no permeten a tothom l'accés gratuït per fer que els fitxers siguin fàcils de trobar.
Sembla que aquest mètode està subjecte a un segrest de sessions. La galeta d'inici de sessió s'afegirà mentre estigui a l'àrea segura, però com que wordpress la serveix com a galeta no segura, encara es servirà si l'usuari torna a navegar a una part del lloc que no està xifrada.
Això no és un pirateig, utilitza les funcions de l'API de WordPress, i no passa per alt cap seguretat ni accedeix directament a la sessió o la galeta.
moltes gràcies, va utilitzar la instrucció if per fer un contenidor div si l'usuari és membre
la teva solució va ser genial