Ogranicz strony w WordPress, aby wymagały logowania

Zrzut ekranu 2013 07 01 w 12.23.52 PM

login_lock.jpgW tym tygodniu kończyliśmy wdrażanie niestandardowego motywu w witrynie klienta i poprosili o stworzenie pewnego rodzaju interakcji, w której niektóre strony były ograniczone do zarejestrowanych subskrybentów. Początkowo myśleliśmy o wdrożeniu wtyczek innych firm, ale rozwiązanie było w rzeczywistości dość proste.

Najpierw skopiowaliśmy szablon strony do nowego pliku (każda nazwa jest w porządku, po prostu zachowaj rozszerzenie php). U góry strony pamiętaj, aby dodać komentarz na stronie, aby można ją było zobaczyć w edytorze szablonów według nazwy:


Następnie poszukaj linii w kodzie strony, która wyświetla zawartość. To powinno wyglądać tak:


Teraz musisz owinąć trochę kodu wokół tej linii:

 Tylko subskrybent Przepraszamy, zawartość, do której próbujesz dotrzeć, jest ograniczona tylko do subskrybentów.

Kod zaczyna się od sprawdzenia sesji, aby zobaczyć, czy użytkownik jest zalogowany w Twojej witrynie WordPress. Jeśli są zalogowani, wyświetlana jest treść. Jeśli nie są zalogowani, komunikat informuje, że próbujesz dotrzeć do treści objętych ograniczeniami.

Aby skorzystać ze strony, musisz wybrać plik Tylko subskrybenci szablon strony w sekcji zaawansowanych opcji strony (na pasku bocznym). To ograniczy stronę do zalogowanych czytelników.

Jeśli chcesz naprawdę zaszaleć, możesz dodać metodę logowania i wylogowania również do paska bocznego:

">Wyloguj /wp-login.php">Login klienta

Komentarze 28

  1. 1
  2. 2
  3. 3
    • 4

      Cześć Partha,

      To byłoby całkiem proste - możesz dodać tę samą technikę do nagłówka strony i po prostu powiedzieć… if (brak identyfikatora użytkownika ORAZ strona nie jest równa nazwie strony), a następnie nagłówek przekierowuje do strony logowania.

      Doug

  4. 5

    świetne eleganckie rozwiązanie! właśnie tego potrzebowałem, poważnie rozważałem zbudowanie zewnętrznego systemu logowania.
    to skały!

  5. 6
    • 7
      • 8

        Nie jest przyjazny dla użytkownika, ale jest w porządku… Wydaje mi się, że pomogłoby kilka zdjęć przedstawiających to, co mam robić. W przeciwnym razie… Po prostu spróbuję, aż zadziała!

        • 9

          skopiuj page.php, zmień nazwę page2.php i wstaw kod powyżej, zapisz plik, załaduj z powrotem do content / theme / cokolwiek, co zostało znalezione, przejdź do posta lub zmień domyślny układ strony na page2.php. Nie ma potrzeby tworzenia nowego stylu / układu strony, wystarczy skopiować ten, którego używasz i zmienić jego nazwę. więc fullwidth.php to fullwidth2.php to takie proste.

      • 10

        Ok, więc po WIELU próbach i obejrzeniu innych samouczków w internecie… stwierdziłem, że TWORZENIE nowego szablonu strony jest moim problemem. Tworzę go w edytorze tekstu i próbuję przesłać go… gdzie? Nie wiem nawet, gdzie iść. Nie mogę znaleźć tej tajnej lokalizacji do przesłania!

        • 11

          To prawda, LaRocque! Musisz mieć program FTP i dostęp do folderu motywów swojej witryny, aby móc przesłać tam plik. Obecnie NIE ma sposobu, aby to zrobić przez ekran administracyjny. Jedynym wyjątkiem byłaby instalacja wtyczki „Menedżer plików”, która umożliwia tworzenie nowych plików. Uważaj jednak! 

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

      Zdecydowanie możesz po prostu sprawdzić, czy użytkownik jest zalogowany; jednakże metoda zdefiniowana powyżej ostatecznie pozwoli ci użyć poziomów uprawnień, jeśli chcesz dostosować poziomy!

  10. 17
  11. 18
  12. 19

    OK, więc ugryzę… Jak zmodyfikowałbyś to, aby umożliwić sprawdzanie uprawnień?

    Powiedzmy - nadal chcemy umożliwić każdemu tworzenie własnej nazwy użytkownika „Subskrybent” i publikowanie odpowiedzi.
    ALE - dostęp do strony „Tylko subskrybenci” udzielamy tylko tym użytkownikom, którzy są wskazani przez administratora?

  13. 20
  14. 21

    Douglas - użyłem twojego kodu - i przeważnie działa świetnie! Problem polega na tym, że łącze Wyloguj wraca do witryny, która nie istnieje. W rzeczywistości wypróbowałem wiele kodów WordPress z Internetu, aby kod wylogowania działał. . . ale użytkownik nadal pozostaje zalogowany, a zwrot to //wp-login.php?redirect_to= Diplotop>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

    jakieś pomysły?

    • 22

      Wygląda na to, że może być tak, że kiedy kod został skopiowany z Twojej przeglądarki, dodał kilka spacji HTML, Ryan. Skopiuj kod do Notatnika lub Textpada, a następnie skopiuj go do szablonu, aby się tego pozbyć.

  15. 23

    Ok, więc to jest dokładnie to, co muszę zrobić, ale mam jedno pytanie. Jeśli nie jest subskrybentem, jak mogę sprawić, by pojawiło się pole „zaloguj się” lub „subskrybuj”, aby mieć dostęp do treści?

    Podziękowania

  16. 25

    Dzięki za kod. ludzie będą na mnie wściekli, ale przypuszczają, że logują się, gdy chcą czegoś, co nie pozwala wszystkim na swobodny dostęp do plików, które ułatwiają wyszukiwanie.

  17. 26

    Wygląda na to, że ta metoda podlega przejmowaniu sesji. Plik cookie logowania zostanie dodany w bezpiecznym obszarze, ale ponieważ wordpress służy jako niezabezpieczony plik cookie, będzie nadal obsługiwany, jeśli użytkownik wróci do niezaszyfrowanej części witryny.

  18. 28

Co o tym myślisz?

Ta strona używa Akismet do redukcji spamu. Dowiedz się, jak przetwarzane są dane komentarza.