Begræns sider i WordPress for at kræve et login

Skærmbillede 2013 07 01 på 12.23.52 PM

login_lock.jpgI denne uge var vi ved at færdiggøre implementeringen af ​​et brugerdefineret tema på et klientside, og de anmodede om, at vi byggede en slags interaktion, hvor nogle af siderne var begrænset til registrerede abonnenter. Først tænkte vi på at implementere tredjeparts plugins, men løsningen var faktisk ret enkel.

Først kopierede vi sideskabelonen til en ny fil (ethvert navn er fint, vedligehold bare php-udvidelsen). Øverst på siden skal du sørge for at kommentere siden, så du kan se den i skabelonditoren ved navn:


Kig derefter efter linjen i din sides kode, der viser indholdet. Det skal se sådan ud:


Nu skal du pakke nogle koder rundt om den linje:

Kun abonnent Vi beklager, det indhold, du prøver at nå, er kun begrænset til abonnenter.

Koden starter med at kontrollere sessionen for at se, om brugeren er logget ind på dit WordPress-websted. Hvis de er logget ind, vises indholdet. Hvis de ikke er logget ind, står det i meddelelsen, at du prøver at nå begrænset indhold.

For at bruge siden skal du vælge Kun abonnenter sideskabelon i det avancerede afsnit af din sides muligheder (på sidepanelet). Dette vil begrænse siden til læsere, der er logget ind.

Hvis du gerne vil være virkelig fancy, kan du også tilføje en login- og logoutmetode til din sidebjælke:

">Log ud /wp-login.php">Kundelogin

28 Kommentarer

  1. 1
  2. 2
  3. 3
    • 4

      Hej Partha,

      Det ville være ret simpelt - du kunne tilføje den samme teknik til sidehovedet og grundlæggende sige ... hvis (ingen bruger-ID OG side ikke er lig med sidenavn) så header frem til login-siden.

      Doug

  4. 5

    fantastisk elegant løsning! lige hvad jeg havde brug for, overvejede jeg seriøst at oprette et eksternt login-system.
    dette klipper!

  5. 6
    • 7
      • 8

        Det er ikke brugervenligt, men det er ok… Jeg har lyst til, at nogle billeder af det, jeg skal gøre, kan hjælpe. Ellers ... Jeg vil bare prøve ting, indtil det fungerer!

        • 9

          kopier side.php, Omdøb side2.php og indsæt kode ovenfor, gem fil, upload tilbage til indhold / tema / uanset hvad der kaldes, gå til indlæg eller sideændring standard sidelayout til side2.php. Ingen grund til at oprette en ny sidestil / layout, bare kopier den, du bruger, og omdøb den. så fullwidth.php er fullwidth2.php så simpelt.

      • 10

        Ok, så efter MANGE forsøg og se andre tutorials på internettet ... har jeg fundet ud af, at Oprettelse af en ny sideskabelon er mit problem. Jeg laver en i en teksteditor og prøver at uploade den til ... hvor? Jeg ved ikke engang, hvor jeg skal hen. Jeg ser ikke ud til at finde dette hemmelige sted at uploade til!

        • 11

          Så sandt, LaRocque! Du skal have et FTP-program og få adgang til dit websteds temamappe, så du kan uploade filen der. Der er INGEN måde i øjeblikket at gøre det gennem den administrative skærm. En undtagelse ville være at installere et "File Manager" plugin, der giver dig mulighed for at oprette nye filer. Vær dog forsigtig! 

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

      Du kan helt sikkert bare kontrollere, om en bruger er logget ind eller ej; den ovenfor definerede metode vil dog i sidste ende give dig mulighed for at bruge tilladelsesniveauer, hvis du gerne vil tilpasse niveauer!

  10. 17
  11. 18
  12. 19

    OK, så jeg bider ... Hvordan vil du ændre dette for at tillade kontrol af tilladelser?

    Lad os sige - vi vil stadig tillade enhver at oprette sit eget "Abonnent" brugernavn og sende svar.
    MEN - vi giver kun adgang til siden "Kun abonnenter" kun til de brugere, der er angivet af en administrator?

  13. 20
  14. 21

    Douglas - Jeg brugte din kode - og for det meste fungerer den godt! Det problem, jeg har, er, at Logout-linket vender tilbage til et websted, der ikke findes. Jeg har faktisk prøvet flere wordpress-koder fra hele internettet for at få log-out-koden til at fungere. . . men brugeren forbliver stadig logget ind, og returneringen er //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% 20% XNUMX

    Nogen tanker?

    • 22

      Det ser ud til, at det bare kan være, at når koden blev kopieret fra din browser, tilføjede den en masse HTML-mellemrum, Ryan. Kopier koden til Notepad eller Textpad, og kopier den derefter til din skabelon for at slippe af med de ting.

  15. 23

    Ok, så det er nøjagtigt hvad jeg skal gøre, men jeg har et spørgsmål. Hvis de ikke er abonnent, hvordan kan jeg så få vist et "log ind" eller "abonner" felt, så de kan få adgang til indholdet?

    Tak

  16. 25

    Tak for koden. vil gøre folk sur på mig, men de antager at logge ind, når de vil have noget, der ikke giver alle fri adgang til at gøre filerne nemme at finde.

  17. 26

    Det lyder som om denne metode er genstand for kapring af sessioner. Login-cookien tilføjes i det sikre område, men da wordpress fungerer som en ikke-sikker cookie, vil den stadig blive vist, hvis brugeren gennemser tilbage til en del af webstedet, der ikke er krypteret.

  18. 28

Hvad mener du?

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.