W świecie WordPressa, gdzie coraz częściej strony pełnią funkcje nie tylko blogów, ale również platform edukacyjnych, zamkniętych społeczności, portali intranetowych czy serwisów z płatnym dostępem do treści – zarządzanie dostępem do zawartości staje się niezbędne. Właściciele witryn potrzebują coraz bardziej zaawansowanych i elastycznych rozwiązań, które umożliwią precyzyjne sterowanie tym, kto może zobaczyć daną treść, a kto nie.
Domyślne funkcje WordPressa – jak ustawienie wpisu jako prywatnego czy chronionego hasłem – szybko przestają wystarczać. A przecież potrzeby są różne: być może chcesz pokazać część strony tylko zalogowanym użytkownikom, ukryć pewne fragmenty przed osobami bez odpowiednich ról, a może zbudować strukturę dostępu dla redakcji, klientów premium lub uczestników kursu online. W takich przypadkach nieodzowna okazuje się specjalistyczna wtyczka – taka jak „Members” od MemberPress.
To niepozorne narzędzie, dostępne za darmo w repozytorium WordPressa, zdobyło uznanie tysięcy administratorów i twórców treści na całym świecie dzięki swojej prostocie, elastyczności i mocy. Pozwala nie tylko ustawiać widoczność całych stron i wpisów, ale też konfigurować dostęp do ich poszczególnych sekcji, modyfikować role i uprawnienia użytkowników, a także tworzyć własne poziomy dostępu. I to wszystko – bez potrzeby pisania ani jednej linijki kodu.
W poniższym poradniku pokażę Ci, jak w pełni wykorzystać potencjał wtyczki „Members”, dla kogo jest stworzona, kiedy warto po nią sięgnąć, jak działa i jakie daje możliwości. Niezależnie od tego, czy tworzysz małego bloga z zamkniętym działem premium, czy rozbudowaną platformę edukacyjną – ta wtyczka może być Twoim nieocenionym wsparciem.
Dostęp do całej strony tylko dla zalogowanych
Metoda 1: Wtyczka „Force Login” (prosta i skuteczna)
Najłatwiejszy sposób – po zainstalowaniu i aktywacji wtyczki Force Login:
- Cała strona będzie wymagała logowania.
- Niezalogowani użytkownicy zostaną automatycznie przekierowani na stronę logowania (
/wp-login.php
). - Strona logowania może być dostosowana (np. przez wtyczki typu Theme My Login lub Custom Login Page).
Plusy:
- Prosto, szybko, działa „od razu po instalacji”.
- Nie wymaga konfiguracji.
Metoda 2: Ręcznie w functions.php
Jeśli nie chcesz używać wtyczki:
function tylko_dla_zalogowanych() {
if (!is_user_logged_in() && !is_admin()) {
auth_redirect(); // przekierowuje do logowania
}
}
add_action('template_redirect', 'tylko_dla_zalogowanych');
⚠️ Uwaga: nie zadziała dla stron logowania /wp-login.php i panelu /wp-admin – one są domyślnie dostępne.
Dostęp tylko do wybranych wpisów lub stron
Metoda 1: Ustawienia widoczności wpisu
W WordPressie możesz łatwo ograniczyć dostęp do konkretnego wpisu lub strony dzięki opcji widoczności, dostępnej podczas edycji treści. W edytorze wpisu znajdź sekcję „Status i widoczność” (najczęściej po prawej stronie). Kliknij „Widoczność: Publiczne”, aby rozwinąć opcje. Masz trzy możliwości:
- „Publiczne” – wpis dostępny dla wszystkich użytkowników, także niezalogowanych.
- „Chronione hasłem” – wpis zostanie zabezpieczony hasłem, które musisz ustawić. Każdy użytkownik (nawet niezalogowany), który wpisze hasło, uzyska dostęp do treści.
- „Prywatne” – wpis będzie widoczny tylko dla użytkowników z uprawnieniami administratora lub redaktora. Zwykli użytkownicy i goście nie zobaczą tego wpisu na stronie ani nie uzyskają do niego dostępu nawet z bezpośrednim linkiem.
To szybki sposób na ograniczenie dostępu bez konieczności instalowania dodatkowych wtyczek. Warto jednak pamiętać, że „Prywatne” nie obejmuje użytkowników z niższymi rolami (np. subskrybentów) – dla nich lepszym wyborem może być zabezpieczenie wpisu hasłem lub wykorzystanie wtyczki do kontroli ról i dostępów.
Metoda 2: Wtyczka „Members” od MemberPress
Wtyczka „Members” od MemberPress to jedno z najpotężniejszych i najbardziej elastycznych narzędzi do zarządzania dostępem do treści w WordPressie. Choć jest często wykorzystywana w serwisach członkowskich (membership sites), sprawdza się również idealnie w ograniczaniu widoczności stron, wpisów, kategorii, tagów, fragmentów treści, a nawet menu – wszystko zależy od Twoich potrzeb.
- Tworzenie niestandardowych ról użytkowników – możesz zdefiniować nowe role (np. „Klient Premium”, „Subskrybent”, „Redaktor działu”) i przypisać im dokładnie takie uprawnienia, jakie chcesz.
- Modyfikowanie istniejących ról WordPressa – wtyczka pozwala dodawać i usuwać możliwości (capabilities) z domyślnych ról WordPressa, takich jak Administrator, Redaktor, Autor itd.
- Ograniczanie dostępu do treści – możesz oznaczyć dowolny wpis, stronę lub dowolny typ treści jako dostępny tylko dla określonych ról użytkowników.
- Integracja z menu i widgetami – możesz ukryć lub pokazać konkretne elementy menu tylko wybranym użytkownikom, np. zalogowanym lub o określonych rolach.
- Obsługa shortcode’ów – możesz ograniczyć fragmenty treści wewnątrz jednego wpisu przy pomocy krótkich kodów:
[members_logged_in]Tylko dla zalogowanych[/members_logged_in]
lub
[members_can access="edit_posts"]Tylko dla edytorów[/members_can]
- Blok Gutenberg – dla osób pracujących w edytorze blokowym (Gutenberg) wtyczka dodaje specjalne bloki, które można pokazać/ukryć w zależności od roli użytkownika.
Ograniczenie dostępu tylko do fragmentu wpisu
Metoda: Shortcode is_user_logged_in()
z PHP
Wklej do pliku functions.php
:
function fragment_dla_zalogowanych($atts, $content = null) {
if (is_user_logged_in()) {
return $content;
} else {
return '<p>Ten fragment jest dostępny tylko dla zalogowanych użytkowników.</p>';
}
}
add_shortcode('tylko_dla_zalogowanych', 'fragment_dla_zalogowanych');
Teraz w treści wpisu możesz używać shortcode:
[tylko_dla_zalogowanych]
To jest ukryty fragment treści, który widzą tylko zalogowani.
[/tylko_dla_zalogowanych]
Bonus: Ukrycie WordPressa przed Google
Jeśli strona ma być całkowicie prywatna, a nie tylko ograniczona dostępem dla użytkowników, warto:
- W Ustawieniach → Czytanie zaznaczyć:
✓ Nie zezwalaj wyszukiwarkom na indeksowanie tej witryny
- Dodać reguły w
robots.txt
:User-agent: * Disallow: /
Takie rozwiązanie przyda się z pewnością, jeśli mamy np. grupę klientów, którym dajemy dostęp do pewnych rzeczy. A chcemy wykluczyć wszystkie inne osoby.
Proste i szybkie rozwiązanie.
Takie rozwiązanie często spotyka się w portalach dziennikarskich, jak nie chce on przyjmować nowych recenzentów
Fajna i przydatna wtyczka. Czy istnieje taka wtyczka jeżeli chciałbym aby część serwisu była dostępna po zalogowaniu?? Jakaś część dostępna dla ogółu a pozostała tylko dla zalogowanych??