Im privaten Umfeld ist es nicht selten, dass man Fotos, Videos und Texte nicht mit jedem teilen möchte.
Aber mit Freunden und Familie möchte man schon Inhalte teilen können, und einfach soll es auch sein (außerdem sollen sie auch keine Berechtigungen bekommen, die Homepage zu verändern)… Viele greifen daher bevorzugt auf Facebook, weil sie meinen, die Inhalte seien dort privat – nun ja, lassen wir Kommentare hierzu beiseite…
Widmen wir uns einer anderen Option: wir erstellen eine WordPress Homepage, zu der nur registrierte User Zugriff haben. Damit aber nicht jeder Login und Passwort sich merken muss, bieten wir zusätzlich zur Standard-Anmeldung, die Möglichkeit, sich via Facebook Login anzumelden.
Vorgehensweise
- Zugriff einschränken
- Members Plugin einrichten, um die Rollendefinition von WordPress anzupassen und den Zugang zur Homepage über die Anmeldeseite umzuleiten
- User Role Editor Plugin installieren, um eine individuelle Capability (Berechtigung) zu erstellen
- functions.php Datei des Themes anpassen, um die Inhalte der Homepage für Abonnenten zu verbergen
- Erstellen einer Seite mit Informationen für angemeldete Nutzer, die aber nicht die geeigneten Berechtigungen besitzen
- Facebook Plugin installieren/konfigurieren, um Facebook-Usern die Möglichkeit zu geben, sich ohne Login/Passwort anzumelden
- Facebook-App erstellen
- Social-Login-Plugin (Nextend Social Login) einrichten
Zugriff auf Homepage einschränken
Members Plugin einrichten
- Allgemeinen Zugriff auf die Inhalte unterbinden: Besucher muss angemeldet sein
- Neue Rolle „Family & Friends“ erstellen: als Admin können wir manuell Abonnenten (die keine Berechtigungen haben) in die neue Rolle umziehen
Wir installieren das Plugin Members und kümmern uns um die Einstellungen davon:
- Enable Private Site: anhaken – wir möchten, dass nur angemeldete Nutzer die Inhalte sehen können, daher sollen unangemeldete Nutzer auf die Anmelde-Seite umgeleitet werden, egal welche Seite sie ansteuern
- REST API: anhaken – sonst lassen sich Beiträge und Seiten auch ohne Anmeldung über die Schnittstelle /wp-json/ abrufen
- Disable Feed: anhaken – andere Personen oder Dienste sollen keine Informationen über die Inhalte erhalten
Die anderen voreingestellten Parameter können so bleiben.
Individuelle Capability erstellen
Wir erstellen also eine Capability namens oooooxooooo und weisen sie der Rolle „Family & Friends“ zu, bzw. auch der Admin-Rolle. Sollten auf der WordPress-Installation auch andere Rollen besetzt sein (Redakteur, ..), dann kannst du die Capability auch diesen Rollen zuweisen. Jedenfalls NICHT der Rolle „Subscriber“ (Abonnent) vergeben!
Zusatzeinstellung in der functions.php
Das Members-Plugin ist leider nicht ausreichend für unser Vorhaben bzw. etwas umständlich. Mit dem Members-Plugin wird nämlich nur erzwungen, dass Besucher sich anmelden müssen. Standardmäßig hat aber ein eingeloggter User Zugriff auf alle Inhalte (Seiten / Artikel). Aber selbst wenn man bei allen Seiten und Artikeln, die User-Berechtigungen setzt, bekommt der nicht-autorisierte Besucher z. B. die Artikel-Titel angezeigt, lediglich der Inhalt wird gesperrt.
Das ist nicht was wir haben möchten; wir möchten den Zugriff komplett unterbinden.
- Jedes Theme hat eine
functions.php. Diese zentrale Datei steuert das Verhalten eines Themes und verbindet verschiedene Dateien zusammen - Der zusätzliche Code prüft 3 Dinge:
- ob der Besucher angemeldet ist,
- ob der Besucher die Capability „oooooxooooo“ nicht hat
- und ob der User nicht bereits auf der Seite „Stop“ ist
Wenn alle drei Bedingungen zutreffen, wird der Besucher auf die Seite „Stop“ weitergeleitet, ansonsten kann der Besucher sich die Seiten/Artikel anschauen. Die dritte Bedingung ist deshalb wichtig: wenn man die Seite „Stop“ aufruft, darf keine weitere Weiterleitung stattfinden, sonst wandelt sich die Anfrage in eine unendliche Loop.
Code für functions.php
function my_page_template_redirect(){
if( is_user_logged_in() && ! current_user_can( 'oooooxooooo' ) && ! is_page( 'stop' ) ){
wp_redirect( home_url( '/stop/' ) );
exit();
}
}
add_action( 'template_redirect', 'my_page_template_redirect' );
Code für functions.php bei Multisite
function my_page_template_redirect(){
if( is_user_logged_in() && ! current_user_can_for_site( get_current_blog_id(), 'oooooxooooo' ) && ! is_page( 'stop' ) ){
wp_redirect( home_url( '/stop/' ) );
exit();
}
}
add_action( 'template_redirect', 'my_page_template_redirect' );
Seite mit Infos für abgewiesene Nutzer
Besucher, die sich anmelden aber nicht die erforderlichen Berechtigungen haben, sollten nicht einfach eine weiße Seite zu sehen bekommen oder irgendeine Fehlermeldung. Es ist viel besser, diesen Personen eine Seite anzuzeigen, auf der wir angeben, dass sie keine Berechtigung haben und sich ggf. an den Homepage-Betreiber wenden sollen. Ein zusätzlicher Hinweis für Facebook-User, die das Facebook-Login zum ersten Mal nutzen und deshalb keine Berechtigung haben ist auch sinnvoll.
Facebook Login
Egal welches Facebook Login Plugin verwendet wird, wir benötigen eine Facebook-App, zu der das Plugin eine Verbindung aufnehmen kann, wenn ein Facebook-Nutzer sich anmelden möchte.
Stand 2026: Meta stellt an solche Apps inzwischen deutlich höhere Anforderungen (HTTPS, Datenschutz- und Datenlösch-Seite, für Nutzer außerhalb der App meist eine Unternehmensverifizierung und eine App-Prüfung). Für eine private Familien-Homepage ist der Google-Login, den das unten genannte Plugin ebenfalls kostenlos mitbringt, oft der einfachere Weg.
Facebook App erstellen
- Eine neue App erstellen: App-Name + Kontakt-E-Mail, als Anwendungsfall „Facebook Login“ wählen
- Facebook Login anpassen: Berechtigung „email“ hinzufügen und die gültige OAuth-Redirect-URI eintragen, die das Plugin anzeigt (die Website muss per HTTPS erreichbar sein)
- Einstellungen > Allgemeines: App-Domain, URL der Datenschutzerklärung, der Nutzungsbedingungen und der Anleitung zur Datenlöschung, Kategorie und App-Symbol eintragen; Plattform hinzufügen -> Website -> URL eingeben (speichern)
- Damit sich nicht nur Personen mit einer Rolle in der App anmelden können: Unternehmensverifizierung und App-Prüfung durchlaufen, danach die App vom Entwicklungsmodus auf „Live“ schalten
- App-ID und App-Geheimcode kopieren und in WP einfügen
Nextend Social Login einrichten
Damit das Plugin tut was wir wollen, müssen wir folgendes einstellen:
- Daten aus der Facebook App kopieren und in das Plugin eintragen
- Registrierungen und Anmeldungen sollen erlaubt sein (in Nextend: Allgemein > Membership > Enabled)
- Die sich über Netzwerke verbindenden User erhalten zunächst die Role „Abonnent“ (Subscriber) – das ist die Standardrolle für neue Benutzer, die wir unter Einstellungen > Allgemein zur Sicherheit noch einmal prüfen: sicher ist sicher!
Wenn ein neuer Facebook-User sich registriert, möchten wir auch informiert werden, um die Berechtigungen, zu ändern (oder nicht, wenn es sich nicht um erwünschte Personen handelt). Nextend verschickt dazu standardmäßig die WordPress-Benachrichtigung bei Neuregistrierungen, der Admin bekommt also eine E-Mail. In der Pro-Version lässt sich unter Registration notification sent to auch „Admin“ allein auswählen.
Optional: Admin-Bar entfernen
Wenn man möchte, dass Benutzer aus der Gruppe „Family & Friends“ bzw. solche die keine Admins sind (oder Admin-Berechtigungen haben), die Admin-Bar nicht sehen sollen, dann kann man diese entsprechend ausblenden. Dazu wird erneut in der functions.php Code hinzugefügt:
function remove_admin_bar() {
if( ! current_user_can('manage_options') && ! is_admin() ){
show_admin_bar(false);
}
}
add_action('after_setup_theme', 'remove_admin_bar');
Achtung: das bedeutet natürlich, dass diese Benutzer nicht ohne Weiteres in ihr Profil gelangen können und entsprechend ihre eigenen Daten nicht bearbeiten können. Dafür können wir aber in einem passenden Menü einen Eintrag hinzufügen z. B. „Profil bearbeiten“ der https://meine-website.tld/wp-admin/profile.php verlinkt.
Zusammenfassung
Die Anmeldung alleine reicht nicht aus, der Besucher darf nicht der Gruppe (Rolle) Abonnent gehören (das ist übrigens die Standard-Rolle, wenn Nutzer angelegt werden) und muss eine Zusatz-Berechtigung oooooxooooo besitzen. Nicht erlaubte Besucher werden auf die Seite „Stop“ weitergeleitet.
Zu alledem haben wir einen „Facebook-Connector“ eingerichtet: Facebook-User können sich anmelden ohne Login und Passwort einzugeben. Neu angemeldete Facebook-User gehören automatisch der Gruppe Abonnent und dürfen vorerst nichts sehen. Achtung: wenn der Besucher einen Adblocker benutzt, kann es sein, dass die Facebook-Anmeldung fehlschlägt.
Als Administrator werde ich automatisch über Neuregistrierungen informiert: wenn ich den Facebook-User kenne, dann weise ich ihm die Rolle „Family & Friends“ zu.
Du planst eine neue Website? Wir entwickeln WordPress-Webseiten, die du selbst pflegen kannst. Mehr zu WordPress Webseiten





