668 145 480 info@jacekjagusiak.pl

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).
Sprawdź także:  Jak dodać miniatury wpisów do kanału RSS Feed w Wordpressie?

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: /
    
Spis treści