Trick # 533 | Dieser Beitrag beinhaltet 383 Wörter. – Geschätzte Lesezeit: ca. 2 Minuten.
Ab und an möchten Sie vielleicht eine vollständige WordPress-Website schützen und sicherstellen, dass nur eingeloggte BenutzerInnen Zugriff auf die Inhalte haben. Dies ist besonders nützlich für private Blogs, interne Unternehmenswebsites oder Mitgliederseiten. Es gibt zahlreiche Plugins, die dies bewerkstelligen – es geht aber noch einfacher: mit einem einfachen PHP-Snippet.
Um den gesamten Content einer Website ausschliesslich eingeloggten Personen zugänglich zu machen, fügen Sie den folgenden PHP-Code in die Datei functions.php Ihrer WordPress-Installation ein. Die Datei ist zu finden unter Design/Theme-Datei-Editor:
// Website-Zugang nur eingeloggten Benutzern gewähren
function restrict_access_to_logged_in_users() {
// Wenn der Benutzer nicht eingeloggt ist und nicht auf der Login-Seite oder der Registrierungsseite ist
if (!is_user_logged_in() && !is_page('login') && !is_page('register')) {
// Umleitung zur Login-Seite
wp_redirect(wp_login_url());
exit;
}
}
add_action('template_redirect', 'restrict_access_to_logged_in_users');
Schon ist die gesamte Website dicht und nur für eingeloggte User zugänglich. Wer die Seite aufruft, gelangt automatisch auf die Standard-Login-Seite der WordPress-Installation.
Unter Umständen ist es sinnvoll, die Werte in der Zeile 4 genauer anzushen und gegebenenfalls anzupassen:
- Wenn es auf der Website eine Registrationsseite für neue User gibt, sollte diese von der Zugriffsperre natürlich ausgenommen sein. In unserem Beispiel ist also etwa die Seite «register» auch ohne Login aufrufbar.
- Ebenso, falls es eine eigene Login-Seite gibt. Auch diese sollte natürlich von der Sperre verschont und auch ohne Logged-In-Status angezeigt werden – in unserem Fallbeispiel die Seite «login».
Werbung


