Przekierowanie użytkowników na konkretne strony po zalogowaniu w WordPressie
Objaśnienie
Chcesz przekierować użytkowników na konkretną stronę po zalogowaniu? Ten kod robi dokładnie to, w zależności od ich roli w WordPressie.
- Administratorzy: Zostaną przeniesieni do panelu administracyjnego.
- Redaktorzy: Trafią na specjalnie dla nich przygotowaną stronę.
- Subskrybenci: Zostaną skierowani na stronę dla subskrybentów.
- Wszyscy inni: Przejdą na stronę główną.
Jeśli użytkownik się zarejestruje, zostanie przekierowany na stronę powitalną. To miły gest, aby przywitać nowych członków.
A jeśli ktoś zaloguje się z konkretnej strony, zostanie odesłany z powrotem tam, skąd przyszedł. To przydatne, jeśli chcesz utrzymać płynność i brak zakłóceń w nawigacji.
Te przekierowania są ustawiane za pomocą filtrów i akcji WordPressa, które działają jak małe haki, pozwalające na zmianę działania bez modyfikacji plików rdzeniowych. Wystarczy wkleić ten kod do pliku functions.php swojego motywu, a wszystko będzie działać!
Kod
<?php
// Redirect users to a specific page after login based on user role
function wp_dudecom_login_redirect($redirect_to, $request, $user) {
// Check if the user is a valid WP_User object
if (isset($user->roles) && is_array($user->roles)) {
// Redirect based on user role
if (in_array('administrator', $user->roles)) {
return admin_url(); // Redirect administrators to the dashboard
} elseif (in_array('editor', $user->roles)) {
return home_url('/editor-dashboard'); // Redirect editors to a custom page
} elseif (in_array('subscriber', $user->roles)) {
return home_url('/subscriber-home'); // Redirect subscribers to a specific page
} else {
return home_url(); // Default redirect for other roles
}
} else {
return $redirect_to; // Default redirect if user roles are not set
}
}
add_filter('login_redirect', 'wp_dudecom_login_redirect', 10, 3);
// Redirect users to a specific page after registration
function wp_dudecom_registration_redirect() {
return home_url('/welcome'); // Redirect to a welcome page after registration
}
add_filter('registration_redirect', 'wp_dudecom_registration_redirect');
// Redirect users to the previous page after login
function wp_dudecom_redirect_to_previous_page() {
if (isset($_SERVER['HTTP_REFERER'])) {
wp_safe_redirect($_SERVER['HTTP_REFERER']);
exit;
}
}
add_action('wp_login', 'wp_dudecom_redirect_to_previous_page', 10, 2);
?>
Instrukcja
Aby wdrożyć przekierowanie użytkowników po zalogowaniu w zależności od ich roli, wykonaj następujące kroki:
Lokalizacja pliku: functions.php (znajduje się w katalogu aktywnego motywu) lub plik niestandardowej wtyczki.
Wymagania wstępne:
- Dostęp do systemu plików Twojej witryny WordPress (za pomocą FTP lub menedżera plików).
- Podstawowa znajomość edytowania plików PHP.
Kroki wdrożenia:
- Utwórz kopię zapasową swojej witryny: Przed wprowadzeniem jakichkolwiek zmian upewnij się, że masz kopię zapasową swojej witryny.
- Dostęp do pliku: Przejdź do katalogu swojego motywu i otwórz plik
functions.php. Alternatywnie, jeśli wolisz używać wtyczki, otwórz plik swojej niestandardowej wtyczki. - Dodaj kod: Skopiuj podany fragment kodu i wklej go na końcu pliku
functions.phplub pliku swojej wtyczki. - Zapisz zmiany: Po wklejeniu kodu zapisz plik.
- Przetestuj funkcjonalność: Zaloguj się z różnymi rolami użytkowników, aby upewnić się, że są przekierowywani na odpowiednie strony zgodnie z zapisanym kodem.
Jeśli napotkasz jakiekolwiek problemy lub potrzebujesz dalszej pomocy, rozważ skontaktowanie się z wp-dude.com w celu uzyskania fachowej pomocy przy wdrożeniu lub bardziej zaawansowanej funkcjonalności.