WordPress bietet uns die Möglichkeit, Beiträge und Seiten mit einem Passwortschutz zu versehen. Besucher die einen passwortgeschützten Inhalt aufrufen, sehen dann ein Eingabefeld mit der Aufforderung ein Passwort einzugeben, um den Inhalt freizuschalten.

Leider ist es so, dass passwortgeschützte Beiträge dennoch in den Auflistungen aller WordPress Beiträge angezeigt werden. Das bedeutet, dass die Existenz dieser Inhalte für alle Nutzer sichtbar ist, wenn sie z.B. eine Archiv oder Taxonomie Seite aufrufen, zu welcher der jeweilige passwortgeschützte Beitrag zugeordnet ist. Es ist allerdings sehr gut nachvollziehbar, dass diese Art von Inhalten nicht für alle Besucher sichtbar sein sollen. In diesem Artikel zeige ich euch wie ihr Beiträge und Seiten mit einem Passwortschutz auch innerhalb von Archiv oder Taxonomie Seite verstecken bzw. ausblenden könnt.

Wann sollten Inhalte mit einem Passwortschutz sichtbar sein und wann nicht?

Zunächst erstellen wir eine PHP-Funktion wordpress_hide_protected_posts(), um zu unterscheiden in welchem Fall wir passwortgeschützte WordPress Beiträge oder Seiten verstecken oder anzeigen lassen wollen. Hier legen wir fest, dass diese Art von Inhalten nur für Benutzer angezeigt werden, die eingeloggt sind und die Rechte besitzen passwortgeschützte Beiträge und Seiten zu bearbeiten. Das Resultat ist folgende Funktion:

Wie kann ich geschützte Inhalte auf WordPress Archiv und Taxonomie Seiten verstecken?

Standardmäßig werden passwortgeschützte Beiträge auf WordPress Archiv und Taxonomie Seiten für benutzerdefinierte Beitragstypen angezeigt. Mit Hilfe des WordPress-Filters posts_where können wir das weiter einschränken. In Kombination mit der oben aufgeführten wordpress_hide_protected_posts() Funktion können wir nun alle passwortgeschützten Beiträge in den Auflistungen der Archiv und Taxonomie Seiten ausblenden. Verwende dazu den folgenden Filter und füge ihn z.B. in die functions.php Datei deines Themes bzw. Child Themes ein:

Wie können wir passwortgeschützte Inhalte unter Verwendung von get_posts() ausblenden?

Die WordPress-Funktion get_posts() bietet eine weitere Möglichkeit, Beiträge oder Seiten von allen oder nur bestimmten Beitragstypen auszugeben. Auch in diesem Fall werden passwortgeschützte Inhalte standardmäßig in der Auflistung aufgeführt. Um diese Art von Beiträgen auch für diesen Anwendungsfall auszublenden, können wir wie folgt vorgehen:

Achte darauf, dass wir auch hier die oben aufgeführte Helper-Funktion wordpress_hide_protected_posts() benötigen, um zu prüfen in welchem Fall wir passwortgeschützte Beiträge in WordPress anzeigen lassen wollen und wann nicht.