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.
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:
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:
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.