Limita le pagine in WordPress per richiedere un accesso

Screen Shot 2013 07 01 a 12.23.52 PM

login_lock.jpgQuesta settimana stavamo completando l'implementazione di un tema personalizzato su un sito cliente e ci hanno chiesto di creare un qualche tipo di interazione in cui alcune delle pagine fossero limitate agli abbonati registrati. All'inizio, abbiamo pensato di implementare plugin di terze parti, ma in realtà la soluzione era abbastanza semplice.

Per prima cosa, abbiamo copiato il modello di pagina in un nuovo file (qualsiasi nome va bene, basta mantenere l'estensione php). Nella parte superiore della pagina, assicurati di commentare la pagina in modo da poterla vedere nell'editor del modello per nome:


Quindi, cerca la riga nel codice della tua pagina che mostra il contenuto. Dovrebbe sembrare come questo:


Ora, dovrai avvolgere del codice attorno a quella riga:

Solo abbonato Siamo spiacenti, il contenuto che stai cercando di raggiungere è limitato ai soli iscritti.

Il codice inizia controllando la sessione per vedere se l'utente è connesso al tuo sito WordPress. Se hanno effettuato l'accesso, viene visualizzato il contenuto. Se non hanno effettuato l'accesso, il messaggio indica che stai tentando di accedere a contenuti con restrizioni.

Per utilizzare la pagina, dovrai selezionare il file Solo abbonati modello di pagina nella sezione avanzata delle opzioni della tua pagina (sulla barra laterale). Ciò limiterà la pagina ai lettori che hanno effettuato l'accesso.

Se vuoi essere davvero stravagante, puoi aggiungere anche un metodo di accesso e disconnessione alla barra laterale:

">Disconnettersi /wp-login.php">accesso cliente

Commenti

  1. 1
  2. 2
  3. 3
    • 4

      Ciao Partha,

      Sarebbe piuttosto semplice: potresti aggiungere la stessa tecnica all'intestazione della pagina e fondamentalmente dire ... se (nessun ID utente AND pagina non è uguale a nome pagina) quindi intestazione in avanti alla pagina di accesso.

      Doug

  4. 5

    ottima soluzione elegante! proprio quello di cui avevo bisogno, stavo seriamente pensando di costruire un sistema di login esterno.
    questo spacca!

  5. 6
    • 7
      • 8

        Non è facile da usare ma va bene… Penso che alcune immagini di quello che dovrei fare potrebbero aiutare. Altrimenti ... proverò le cose finché non funzioneranno!

        • 9

          copia page.php, Rinomina page2.php e inserisci il codice sopra, salva il file, carica di nuovo su contenuto / tema / qualunque cosa sia chiamata, vai al post o cambia pagina il layout di pagina predefinito in page2.php. Non è necessario creare un nuovo stile / layout di pagina, basta copiare quello che si utilizza e rinominarlo. quindi fullwidth.php è fullwidth2.php così semplice.

      • 10

        Ok, quindi dopo MOLTI tentativi e guardando altri tutorial su Internet ... ho scoperto che FARE un nuovo modello di pagina è il mio problema. Ne creo uno in un editor di testo e provo a caricarlo in ... dove? Non so nemmeno dove andare. Non riesco a trovare questa posizione segreta in cui caricare!

        • 11

          Così vero, LaRocque! È necessario disporre di un programma FTP e accedere alla cartella dei temi del sito Web in modo da poter caricare il file lì. Attualmente NON c'è modo di farlo attraverso la schermata amministrativa. Un'eccezione sarebbe l'installazione di un plug-in "File Manager" che consente di creare nuovi file. Stai attento, però! 

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

      Puoi sicuramente controllare se un utente è loggato o meno; tuttavia, il metodo definito sopra ti consentirà eventualmente di utilizzare i livelli di autorizzazione se desideri personalizzare i livelli!

  10. 17
  11. 18
  12. 19

    OK, quindi morderò ... Come modifichereste questo per consentire il controllo delle autorizzazioni?

    Diciamo che vogliamo comunque consentire a chiunque di creare il proprio nome utente "abbonato" e pubblicare risposte.
    MA - concediamo l'accesso alla pagina "Solo abbonati" solo agli utenti specificati da un amministratore?

  13. 20
  14. 21

    Douglas - ho usato il tuo codice - e per la maggior parte funziona benissimo! Il problema che ho è che il collegamento Logout ritorna a un sito che non esiste. In realtà ho provato più codici wordpress da tutto il Web per far funzionare il codice di disconnessione. . . ma l'utente rimane comunque connesso e il ritorno è //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

    qualche idea?

    • 22

      Sembra che possa essere solo che quando il codice è stato copiato dal tuo browser, ha aggiunto un mucchio di spazi HTML, Ryan. Copia il codice su Blocco note o Textpad e poi copialo nel tuo modello per sbarazzarti di quella roba.

  15. 23

    Ok, quindi questo è esattamente quello che devo fare, ma ho una domanda. Se non sono abbonati, come faccio a far apparire una casella "accedi" o "iscriviti" in modo che possano accedere al contenuto?

    Grazie

  16. 25

    Grazie per il codice. farà arrabbiare le persone con me, ma suppongono di effettuare il login quando vogliono qualcosa per non permettere a tutti il ​​libero accesso per rendere i file facili da trovare.

  17. 26

    Sembra che questo metodo sia soggetto a dirottamento di sessione. Il cookie di accesso verrà aggiunto nell'area protetta ma poiché wordpress funge da cookie non protetto, verrà comunque servito se l'utente torna a una parte del sito non crittografata.

  18. 28

Cosa ne pensi?

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati dei tuoi commenti.