Jak zabezpieczyć wpis lub stronę hasłem w WordPressie

Chcesz czasami udostępnić pewne wpisy bądź strony wykonane w technologii WordPress tylko dla wybranym użytkownikom?! W takim razie musisz zabezpieczyć wpis lub stronę hasłem. To sprawi, że tylko osoby posiadające to hasło, będą miały dostęp do tych treści. Przekonaj się, jak dokładnie stworzyć takie zabezpieczenie wpisu lub strony WP i dowiedz się jeszcze, o czym należy pamiętać.

Zabezpieczenie hasłem wpisu lub strony WordPress

Film z kanału #JakSieRozwijac:


Artykuł:

Kiedy dodajesz nowy wpis lub stronę w WordPress, to w ramce po prawej stronie „Opublikuj” klikasz w opcję „Dostępność: Publiczne edytuj”. I następnie wybierasz „Zabezpieczone hasłem” i ustanawiasz trudne hasło. Następnie OK. Gdy opublikujesz taki wpis czy stronę, to z jej treścią będą mogły zapoznać się tylko osoby, które otrzymają hasło. Ale powstaje małe ale, o czym poniżej!

ustalenie hasła dla wpisu lub strony wordpress

Jak usunąć zabezpieczone hasłem wpisy i strony ze strony głównej

Okazuje się, że wpisy i strony chronione hasłem, które są publikowane, będą widoczne na stronie głównej(jeśli wyświetla ona najnowsze wpisy), a dodatkowo w archiwum kategorii i tagów. Co więc należy zrobić, aby również i tam nie pojawiały się te chronione treści? Poniżej szybkie rozwiązanie.

Wklejasz ten kod do pliku motywu o nazwie functions.php, aby posty i strony zabezpieczone hasłem nie były widoczne na stronie głównej bloga oraz w archiwach kategorii i tagów:

// funkcja ukrywania chronionych postów

function exclude_protected($where) {
global $wpdb;
return $where .= " AND {$wpdb->posts}.post_password = '' ";
}
function exclude_protected_action($query) {
if( !is_single() && !is_page() && !is_admin() ) {
add_filter( 'posts_where', 'exclude_protected' );
}
}
// Filtr wyswietlania chronionych postow
add_action('pre_get_posts', 'exclude_protected_action');

Dla mało doświadczonych w WordPressie poniżej zdjęcie, które ukazuje, gdzie należy ten kod wkleić. Czyli przechodzi się w panelu administracyjnym WordPress do pozycji „Wygląd”, a następnie „Edytor”. Wyszukujesz plik function.php znany również jako „Funkcje motywu”. I tam na samym dole dodajesz powyżej skopiowany kod. Zapisujesz, opróżniasz pamięć podręczną przeglądarki(gdy korzystasz w WordPress z wtyczki typu Autoptimize czy W3C Total Cache).

wklejenie kodu w pliku function aby zablokować widoczność wpisów i stron chronionych hasłem

To wszystko. Tak udało Ci się zabezpieczyć wpisy i strony WordPress hasłem. A dodatkowo sprawiłeś, że nie są te treści widoczne na stronie głównej, w archiwach kategorii i tagów. Jeśli więc chcesz udostępnić pewną treść tylko wybranym osobom, to już wiesz, jak to uczynić.

Ta umiejętność okazuje się bardzo przydatna również podczas tworzeniu kursu online na platformie WordPress, gdy kurs online posiada kilka pakietów. Pewne treści z takiego kursu mogą być przeznaczone tylko dla osób, które wykupiły największy pakiet. I taką treść wystarczy im przesłać poprzez wpis lub stronę zabezpieczoną hasłem. Powodzenia!

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

6 komentarzy

  1. Hej.. coś namieszałam i straciłam wszystkie swoje „tajne” strony 🙁 Dodałam kod i teraz wchodząc z linku na stronie mam komunikat, że page doesn’t exist. Mogę wejść na stronę przez edit, przez panel admina i wpisy, ale nie strona jakby nie istnieje dla osoby, do której wysyłam link.
    Co mogło pójść nie tak…. Dodam, że wykonałam wszystkie kroki zgodnie z instrukcją.

    1. Witaj Marta. Trudno ocenić, gdy samemu się nie sprawdzi. Pamiętaj, że zawsze możesz skorzystać z przywrócenia kopi zapasowej, sprzed momentu, gdy ze stroną wszystko było ok. Możesz to zrobić samodzielnie bądź zlecić firmie hostingowej, z której usług korzystasz (powinni to robić za free). Pozdrawiamy.

  2. Bogdan pisze:

    Tak można „zahasłować” pojedyńczą stronę. Czy jest metoda żeby dostęp na hasło obejmował daną stronę i podstrony, które są z niej dostępne?

  3. janiaczarnecka pisze:

    Ojej, dzięki wielkie!! Właśnie tego potrzebowałam.