Posty chronione hasłem powinny pozostać ukryte, ale WordPress nadal wyświetla ich tytuły na listach blogów, w archiwach i wynikach wyszukiwania. Kiedy ktoś kliknie taki post i nagle natrafi na ekran z hasłem, może to być mylące.
To nie robi najlepszego wrażenia, zwłaszcza jeśli treść jest przeznaczona tylko dla klientów, członków lub do użytku wewnętrznego. 😓
Dobra wiadomość jest taka, że możesz całkowicie ukryć te posty przed pętlą WordPress (listą postów wyświetlanych na stronie głównej, w archiwach i wynikach wyszukiwania). Z naszych testów wynika, że WPCode okazał się najprostszym i najbardziej niezawodnym sposobem na osiągnięcie tego celu.
W tym przewodniku przeprowadzimy Cię przez kilka prostych sposobów, aby Twoje prywatne treści pozostały naprawdę prywatne. Przetestowaliśmy różne metody, dzięki czemu możesz usunąć posty chronione hasłem bez psucia swojej witryny ani blokowania dostępu osobom, które faktycznie go potrzebują.

Dlaczego ukrywać posty chronione hasłem w WordPress?
WordPress nadal wyświetla posty chronione hasłem w całej witrynie z etykietą „Chronione”, mimo że sama treść jest zablokowana. Jest to problem, jeśli chcesz, aby określone treści pozostały w pełni prywatne.
Każdy, kto nie ma hasła, nadal może zobaczyć tytuł, co może ujawnić więcej, niż zamierzasz. Może to również zdezorientować odwiedzających, którzy klikają post, oczekując treści, a zamiast tego widzą monit o hasło.

Co więcej, te posty mogą przyciągać niechcianą uwagę. Ponieważ tytuły są widoczne, ktoś mógłby wielokrotnie próbować różnych haseł, aby uzyskać dostęp – zwłaszcza jeśli treść wygląda na cenną lub wrażliwą.
Dlatego wielu właścicieli witryn decyduje się całkowicie ukryć posty chronione hasłem przed pętlą WordPress. Kiedy to zrobisz, prywatne posty nie pojawią się nigdzie na froncie, chyba że ktoś już ma do nich dostęp.
Mając to na uwadze, pokażemy Ci, jak ukryć swoje wpisy chronione hasłem z pętli WordPressa, aby inni użytkownicy ich nie widzieli. Oto szybki przegląd wszystkich kroków, które wykonasz:
- Krok 1. Zainstaluj wtyczkę fragmentów kodu
- Krok 2. Ukryj wpisy chronione hasłem w WordPressie
- Dodatkowa wskazówka: Umożliwienie dostępu do chronionych postów określonym użytkownikom
- Często zadawane pytania dotyczące ukrywania postów chronionych hasłem w WordPress
- Inne pomocne przewodniki dotyczące zarządzania witryną członkowską WordPress
Zacznijmy od razu!
Krok 1. Zainstaluj wtyczkę fragmentów kodu
Aby wprowadzić konkretne zmiany w swojej witrynie, niektórzy eksperci WordPress mogą zalecić dodanie niestandardowego fragmentu kodu do pliku functions.php Twojego motywu.
Nie zalecamy tej metody, ponieważ nie jest ona przyjazna dla początkujących i ryzykujesz uszkodzeniem swojej witryny. Zamiast tego możesz użyć wtyczki do fragmentów kodu, takiej jak WPCode, aby wykonać to zadanie.
WPCode to najlepsza wtyczka do fragmentów kodu na rynku. Niektóre z naszych marek partnerskich używają jej do dodawania i zarządzania niestandardowymi fragmentami kodu na swoich stronach internetowych i są z niej bardzo zadowolone.
Więcej informacji o wtyczce znajdziesz w naszej pełnej recenzji WPCode.

🧑💻 Wskazówka eksperta: Ten samouczek doskonale działa z darmową wersją WPCode. Jeśli regularnie dodajesz lub zarządzasz wieloma niestandardowymi fragmentami kodu, przejście na WPCode Pro zapewni Ci pomocne dodatki, takie jak planowanie kodu, pełna historia rewizji i inne.
Zatem najpierw zainstaluj i aktywuj wtyczkę WPCode.
Z panelu administracyjnego WordPress przejdź do Wtyczki » Dodaj nową wtyczkę.

Na następnym ekranie możesz użyć paska wyszukiwania, aby wyszukać WPCode.
Gdy pojawi się w wynikach, kliknij przycisk „Zainstaluj teraz”, a następnie „Aktywuj”, aby zacząć korzystać z wtyczki w swojej witrynie.

Jeśli jesteś nowy w WordPress, możesz zapoznać się z naszym przewodnikiem jak zainstalować wtyczkę WordPress.
Krok 2. Ukryj wpisy chronione hasłem w WordPressie
Po aktywowaniu wtyczki przejdź do Fragment kodu » + Dodaj fragment z obszaru administracyjnego WordPress.
Następnie po prostu kliknij przycisk „Dodaj niestandardowy fragment kodu” w sekcji „Dodaj swój własny kod (nowy fragment kodu)”.

Na następnym ekranie będziesz musiał wybrać typ kodu dla swojego niestandardowego fragmentu.
Do tego samouczka będziemy musieli użyć opcji „Fragment kodu PHP”.

Zostaniesz następnie przekierowany do edytora niestandardowych fragmentów kodu.
Stąd będziesz chciał najpierw nazwać niestandardowy fragment kodu. Zalecamy użycie jasnej nazwy, takiej jak „Ukryj posty chronione hasłem”. Ułatwi to późniejsze organizowanie niestandardowych fragmentów kodu.
Następnie po prostu dodaj poniższy kod do pola „Podgląd kodu”:
function wpb_password_post_filter( $where = '' ) {
if (!is_single() && !is_admin()) {
$where .= " AND post_password = ''";
}
return $where;
}
add_filter( 'posts_where', 'wpb_password_post_filter' );
Ten kod mówi WordPressowi, aby szukał wszelkich wpisów, które mają hasło, i wyklucza je z zapytania. Zapewnia to, że nie pojawią się one na listach, takich jak Twoja strona główna lub archiwum, ale nadal będą dostępne poprzez bezpośrednie linki.
Oto jak to wygląda w edytorze:

W tym momencie będziesz musiał przełączyć przełącznik „Nieaktywny” na „Aktywny”.
Następnie kliknij „Zapisz fragment”.

Domyślnie WPCode automatycznie zastosuje fragment kodu wszędzie w Twojej witrynie WordPress.
Teraz, jeśli odwiedzisz swoją stronę internetową, zobaczysz, że wpisy chronione hasłem nie są już widoczne na stronie głównej, w archiwach ani w widżetach, takich jak ostatnie wpisy.

Pamiętaj, że nadal możesz odwiedzić post, uzyskując do niego dostęp za pomocą bezpośredniego adresu URL.
Dodatkowa wskazówka: Umożliwienie dostępu do chronionych postów określonym użytkownikom
Powyższy przykład ukrywa wpisy chronione hasłem przed wszystkimi użytkownikami. Ale co, jeśli prowadzisz wieloautorski WordPress i chcesz, aby chronione wpisy były widoczne dla użytkowników z uprawnieniami do edycji prywatnych wpisów?
Aby to zrobić, musisz edytować fragment kodu, który utworzyłeś w poprzednim kroku. Po prostu usuń kod, który dodałeś wcześniej, i zastąp go tym nowym fragmentem kodu:
function wpb_password_post_filter( $where = '' ) {
if (!is_single() && !current_user_can('edit_private_posts') && !is_admin()) {
$where .= " AND post_password = ''";
}
return $where;
}
add_filter( 'posts_where', 'wpb_password_post_filter' );
W tym przykładzie sprawdzamy, czy użytkownik nie może edytować prywatnych postów i wyświetlamy tylko posty, które nie mają haseł.
Robiąc to, wszyscy użytkownicy WordPress z rolami administratora i edytora będą widzieć posty chronione hasłem na stronie głównej Twojej witryny.
Często zadawane pytania dotyczące ukrywania postów chronionych hasłem w WordPress
Zastanawiasz się, co się dzieje, gdy ukrywasz posty chronione hasłem? Oto kilka częstych pytań, które otrzymujemy od czytelników, wraz z jasnymi odpowiedziami, które pomogą Ci zdecydować, czy to podejście jest odpowiednie dla Twojej witryny.
Dlaczego chciałbym ukryć posty chronione hasłem w WordPress?
Ukrywanie postów chronionych hasłem pomaga utrzymać czysty i profesjonalny wygląd Twojej witryny. Zapobiega również nieautoryzowanym odwiedzającym zobaczeniu, że istnieją prywatne treści, zmniejszając ryzyko prób dostępu i utrzymując większe bezpieczeństwo Twojej witryny.
Czy muszę edytować pliki mojego motywu, aby ukryć posty chronione hasłem?
Nie, nie musisz edytować plików motywu bezpośrednio. Możesz użyć niestandardowego fragmentu kodu, a wtyczka taka jak WPCode sprawia, że dodawanie go jest bezpieczne i łatwe, bez psucia Twojej witryny.
Czy ukrywanie tych postów wpłynie na widoczność dla autoryzowanych użytkowników?
Wcale nie. Uprzywilejowani użytkownicy, tacy jak zalogowani członkowie lub użytkownicy z określonymi rolami, nadal mogą uzyskać bezpośredni dostęp do postów, o ile posiadają odpowiednie hasło lub uprawnienia.
Czy WPCode jest jedynym pluginem, który może w tym pomóc?
WPCode jest jedną z najłatwiejszych i najbardziej niezawodnych opcji, dlatego ją polecamy. Istnieją jednak inne wtyczki. Upewnij się tylko, że wybierasz taką, która jest dobrze utrzymana i kompatybilna z Twoim motywem i innymi narzędziami.
Czy ukrywanie postów chronionych hasłem wpłynie na SEO mojej witryny?
Ukrywanie tych postów ze strony głównej lub archiwów nie zaszkodzi Twojemu SEO. W rzeczywistości może je poprawić, utrzymując Twoje publiczne treści bardziej skoncentrowane i trafne dla wyszukiwarek.
Inne pomocne przewodniki dotyczące zarządzania witryną członkowską WordPress
Mamy nadzieję, że ten artykuł pomógł Ci ukryć posty chronione hasłem z pętli WordPress na Twojej stronie.
Możesz również zapoznać się z naszymi poradnikami na temat:
- Jak wyświetlać różne menu dla zalogowanych użytkowników w WordPress
- Jak zmienić prefiks prywatnych i chronionych postów w WordPress
- Jak wyświetlić fragment posta chronionego hasłem w WordPress
- Pełny post vs Podsumowanie (Wycinek) na stronach archiwum WordPress
- Różne sposoby ochrony treści w WordPress
Jeśli podobał Ci się ten artykuł, zasubskrybuj nasz kanał YouTube po samouczki wideo WordPress. Możesz nas również znaleźć na Twitterze i Facebooku.
Abby Buzon
To świetnie zadziałało dla głównego kanału; dziękuję! Mam podobny problem jak Mark (kilka komentarzy wyżej), ale z widżetem Najnowsze posty. Posty chronione hasłem nadal pojawiają się na liście Najnowszych postów.
Wsparcie WPBeginner
Czy masz wtyczkę, która modyfikuje działanie widżetu ostatnich wpisów?
Admin
Abby Buzon
Nie, dlaczego? Czy ten fragment powinien również ukrywać je z widżetu Ostatnie wpisy?
Wsparcie WPBeginner
Powinien ukrywać posty chronione hasłem z widżetu ostatnich postów. Jeśli masz włączone buforowanie na swojej stronie, upewnij się, że je wyczyściłeś, na wypadek gdybyś widział buforowane informacje dla widżetu. Inną możliwością jest to, że coś modyfikuje zapytanie używane przez widżet, inne niż nasz kod.
David Brown
Dziękuję za wyjaśnienie, jak *naprawdę* to zrobić w kodzie; nie spodziewałem się tego po stronie o nazwie „wpbeginner.com”! (Nawiasem mówiąc, nadal działa w 2024 roku i WP 6.5.2.)
Wiele witryn udaje, że oferuje rozwiązania, ale tak naprawdę chce, abyś używał ich wtyczki, która nadmiernie komplikuje coś prostego i naraża Twoją witrynę na wszelkie luki, które mogą wprowadzić i nigdy nie załatać.
Wsparcie WPBeginner
It would depend on the site and plugin as plugins can be for simply adding the same code as code from an article without needing to know how to edit files which is why sites recommend them. Glad you found our site and guide helpful
Admin
Rahul Rana
This was very helpful. Thank you very much
Wsparcie WPBeginner
Proszę bardzo, cieszę się, że nasz przewodnik był pomocny!
Admin
Vincent Zhang
Dziękuję wam bardzo. To naprawdę mi pomogło. Doceniam to. Proszę, publikujcie więcej tego typu postów, które nie wymagają użycia wtyczki.
Wsparcie WPBeginner
Gdy dostępne będzie rozwiązanie bez wtyczek, na pewno postaramy się je uwzględnić.
Admin
Louis Burkhardt
Dzięki. Działa świetnie.
Mark
Utworzyłem wtyczkę specyficzną dla witryny i postępowałem zgodnie z tymi krokami, co zadziałało w przypadku ukrycia mojego posta na stronie „Posty” mojej witryny. Jednak post jest nadal widoczny w widżecie Powiązane posty dla każdego pojedynczego posta. (Bardzo podobne do obrazu, który masz powyżej, jednak mój post chroniony hasłem jest nadal widoczny.)
Czy mogę coś zrobić, aby to naprawić?
Alex
Chciałem wprowadzić własną korektę kodu, aby wyświetlać posty, jeśli można było odczytać_prywatne_posty.
function remove_password_protected_posts( $where = "" ) { if (!is_single() && !current_user_can(‘read_private_posts’) && !is_admin() ) { $where .= " AND post_password = ""; } return $where; } add_filter( ‘posts_where’, ‘remove_password_protected_posts’ );
Świetny post jak zwykle. Dziękuję.
Harin
Cześć wszystkim
Stworzyłem wtyczkę specyficzną dla witryny z poniższym kodem:
Jeśli spróbuję dołączyć galerię NextGEN do mojego posta, galeria się nie ładuje. Gdy tylko wyłączę wtyczkę, galeria NextGEN wraca do normy.
Pozdrawiam
Brandon
Dziękuję za ten fragment kodu. Bardzo pomocne!
Jeśli chodzi o ukrywanie tych postów w kanale RSS, natknąłem się na ten fragment kodu.
function rss_filter_protected($query) {
if ($query->is_feed) {
add_filter('posts_where', 'rss_filter_password_where');
}
return $query;
}
add_filter('pre_get_posts','rss_filter_protected');
Chris
Dzięki za świetną wskazówkę!
Ale czy te posty ukryte z pętli za pomocą Twojego fragmentu kodu są również ukryte z kanału RSS?
Louis Burkhardt
Na podstawie pojedynczego testu, post chroniony hasłem jest ukryty w kanale RSS.