Jak przekierować użytkowników w WordPressie

Opublikowany: 2018-08-08

Przekierowania to standardowa część stron internetowych, wtyczek i motywów. Niektóre dzieją się na Twoich oczach, a Ty możesz nawet nie wiedzieć, co dzieje się z tyłu.

Chociaż przekierowania są zwykle pozostawione programistom, pokażemy Ci kilka wskazówek, które pozwolą Ci wykonać to zadanie samodzielnie.

Jak przekierować określone role użytkownika po pomyślnym zalogowaniu?

W tej części artykułu pokażemy Ci kod, który możesz łatwo modyfikować i kontrolować, dokąd trafia dany użytkownik po udanym zalogowaniu się do Twojej witryny opartej na WordPressie.

Domyślnie WordPress przeniesie każdego użytkownika do pulpitu nawigacyjnego, co może być problemem dla niektórych z Was. Może chcesz, aby administratorzy i autorzy byli na backendzie, podczas gdy chcesz prowadzić innych użytkowników bezpośrednio na swoją stronę główną, a może na inną stronę frontendową, którą utworzyłeś specjalnie dla nich.

Aby przekierować użytkowników na podstawie ich ról, wykonaj następujące kroki:

  1. Otwórz plik functions.php
  2. Skopiuj i wklej następujący kod:
 funkcja my_login_redirect( $url, $request, 
$użytkownik ){ if( $użytkownik && is_object( $użytkownik ) && 
is_a( $ użytkownik, 'WP_User' ) ) {
if( $user->has_cap( 'administrator') or 
$user->has_cap( 'autor')) {
$url = admin_url();
} w przeciwnym razie {
$url = home_url('/strona-niestandardowa /');
}
}
zwróć $url;
}
add_filter('login_redirect', 
'moje_przekierowanie_login', 10, 3 );
  1. Zapisz zmiany

Powyższy kod pozostawi administratorów dokładnie tam, gdzie powinni – panel administracyjny, podczas gdy wszyscy pozostali użytkownicy zostaną przeniesieni na niestandardową stronę.

Można łatwo zmienić adres URL poprzez zmianę zmiennej $ url na 4 miejsce i 6 th linię i dlatego prowadzą użytkowników do utworzonych dla nich żadnych postów / stron.

Jeśli chcesz kontrolować role użytkowników, możesz to łatwo zrobić w trzecim wierszu kodu. W powyższym przykładzie pozostawiliśmy administratorów i autorów w panelu administracyjnym. Jeśli chcesz mieć tam tylko administratorów, po prostu usuń autorów z obrazka:

 if( $user->has_cap( 'administrator' ) ) {

Zamiast usuwać autorów, możesz również dodać inne role; to do Ciebie należy decyzja, kto trafi na którą stronę.

Otóż ​​to. Dzięki temu kodowi nie potrzebujesz żadnej wtyczki do kontrolowania przekierowań po zalogowaniu się użytkownika. Jeśli nadal nie chcesz zmieniać kodu, zobacz jak przekierować użytkowników po zalogowaniu się za pomocą wtyczki.

Przekieruj użytkowników po zalogowaniu się za pomocą wtyczki Peter's Login Redirect

Chociaż możesz szybko przekierować użytkowników po zalogowaniu, umieszczając kod, który pokazaliśmy Ci wcześniej, nie jest to najlepsza opcja dla tych, którzy nie są programistami. Ponadto, jeśli chcesz mieć większą kontrolę nad przekierowaniami, będziesz musiał wiedzieć, jak zmodyfikować kod.

Zamiast modyfikować kod, pokażemy ci wtyczkę, która zrobi za ciebie brudną robotę . Wszystko, co musisz zrobić, to zdecydować, który użytkownik gdzie idzie, kliknąć kilka pól wyboru i wkleić adresy URL, podczas gdy wtyczka zajmie się resztą.

Przekierowanie logowania Piotra

Chociaż istnieje wiele wtyczek do WordPressa zaprojektowanych do tego samego, w tej części artykułu wybraliśmy przekierowanie logowania Petera.

Ta wtyczka pozwoli Ci wybrać użytkowników na podstawie ich nazw, ról, a nawet możliwości użytkownika i po prostu wkleić adres URL, do którego użytkownicy zostaną przekierowani po zalogowaniu. Możesz nawet wybrać inną stronę, jeśli chcesz przekierować tego użytkownika lub grupa użytkowników po wylogowaniu. Ponadto możesz wybrać oddzielny adres URL, który będzie używany jako strona docelowa dla każdego użytkownika po jego rejestracji.

Jeśli to Ci nie wystarczy i chcesz jeszcze bardziej ulepszyć swoje przekierowania, Peter's Login Redirect zapewni Ci ochronę. Jeśli na przykład utworzyłeś konkretną stronę dla każdego użytkownika, możesz wygenerować adres URL bezpośrednio z wtyczki. W takim przypadku prosty shortcode opisany we wtyczce wystarczy, aby wprowadzić nazwę użytkownika i w ten sposób przekierować tego konkretnego użytkownika na jego konkretną stronę.

W końcu istnieje kilka opcji wtyczek, które mogą pomóc w dalszej kontroli zachowania wtyczki. Możesz ustawić wtyczkę tak, aby używała tylko jednego typu adresów URL i, na przykład, zezwalała na używanie tylko wewnętrznych linków, kontrolowała przekierowania POST i GET, w razie potrzeby używała zewnętrznego pliku przekierowania i wybierała, kto może kontrolować tę wtyczkę, wybierając poziomy uprawnień .

Jeśli potrzebujesz zarządzać przekierowaniami logowania, wylogowania i rejestracji, Peter's Login Redirect zapewni Ci praktycznie wszystko, czego potrzebujesz. O tak, czy wspomnieliśmy, że wtyczka jest darmowa? Możesz go pobrać z repozytorium wtyczek WordPress i zainstalować w kilka sekund, po czym wystarczy przejść do Ustawienia -> Przekierowania logowania/wylogowania .

Jak przekierować użytkownika WordPress po wylogowaniu?

Domyślnie, gdy użytkownik wyloguje się z witryny WordPress, zostanie przeniesiony z powrotem na stronę logowania. Zostanie wyświetlony komunikat informujący użytkownika o pomyślnym wylogowaniu, a reszta nawigacji zostanie pozostawiona użytkownikom.

Ale co, jeśli chcesz, aby Twoi użytkownicy byli automatycznie przekierowywani na Twoją stronę główną, strony dyskusyjne, które chcesz, aby zobaczyli lub inne interesujące strony? A może chcesz stworzyć inną stronę wylogowania, która będzie zawierała specjalne widżety lub przekieruje użytkowników w inne miejsce? Jeśli tak, będziesz potrzebować tego małego kodu, aby wszystko się wydarzyło.

W kilku następnych wierszach pokażemy, jak łatwo przekierować użytkownika na dowolny adres URL. Jeśli nie chcesz używać kodu do przekierowań, pokażemy Ci prostą wtyczkę, która zrobi to wszystko za Ciebie. Ale wcześniej przekierujmy użytkownika na stronę główną:

  1. Otwórz plik functions.php
  2. Skopiuj i wklej następujący kod:
 add_action('wp_logout','auto_redirect_after_logout');
funkcja auto_redirect_after_logout(){
wp_redirect( home_url() );
Wyjście();
}
  1. Zapisz zmiany
  2. Wyloguj się i ciesz się piękną stroną główną

To takie proste. Jak można się domyślić z kodu, możesz przekierować użytkownika do dowolnego innego adresu URL, zmieniając trzecią linię . Jeśli więc chcesz przekierować użytkowników na inną stronę swojej witryny lub na dowolną stronę zewnętrzną, Twój kod powinien wyglądać mniej więcej tak:

 add_action('wp_logout','auto_redirect_after_logout');
funkcja auto_redirect_after_logout(){
wp_redirect( 'http://www.firstsiteguide.com');
Wyjście();
}

Jeśli chcesz zrobić więcej z funkcją wp_redirect, możesz dowiedzieć się więcej na ten temat na stronach WordPress Codex.

Przekierowanie logowania i wylogowania

CENA: Bezpłatnie

Przekierowania logowania i wylogowania


Ta darmowa wtyczka jest stosunkowo prosta i doskonale wykona swoją pracę. Zamiast zajmować się kodem, Przekierowanie logowania i wylogowania utworzy dodatkowy segment na stronie ustawień. Po zainstalowaniu i aktywacji musisz przejść do Ustawienia -> Ogólne i przewinąć do końca strony . Tutaj znajdziesz oddzielne pola wejściowe dla przekierowań logowania i wylogowania. Wprowadź żądane adresy URL, zapisz zmiany i gotowe!

Jeśli potrzebujesz więcej opcji przekierowań dla swojej witryny WordPress, sugerujemy sprawdzenie wtyczki 5sec Redirect, która może pomóc w przekierowaniu dowolnego posta, strony, kategorii, tagu lub niestandardowego adresu URL. Umożliwi to maskowanie adresów URL, co może być świetną rzeczą do ukrywania linków partnerskich lub dowolnych adresów URL przed odwiedzającymi. Wtyczka pokazuje również statystyki dotyczące każdego przekierowanego linku, dzięki czemu wiesz, co dzieje się na stronie.

Przekieruj użytkowników po zostawieniu komentarza

Kiedy zaczniesz publikować artykuły, będziesz oczywiście chciał, aby ludzie je komentowali. W tej części poradnika pokażemy, jak przekierować użytkownika po przesłaniu komentarza.

Ta funkcja może się przydać w określonych sytuacjach. Na przykład możesz chcieć utworzyć niestandardową stronę z podziękowaniami na prezent, który organizujesz . Tak więc, gdy odwiedzający biorą udział w konkursie, zostawiając komentarz, możesz łatwo przekierować ich na stronę z podziękowaniami, gdzie możesz podać dodatkowe informacje o nagrodach.

W rzeczywistości istnieje mnóstwo różnych powodów, dla których możesz przekierować użytkownika po pozostawieniu komentarza, więc bez zbędnych ceregieli, oto, co musisz zrobić, aby zautomatyzować proces.

Przekieruj użytkownika po przesłaniu komentarza:

  1. Otwórz plik functions.php
  2. Skopiuj i wklej ten kod do pliku:
 funkcja redirect_after_comment(){
wp_redirect('/dziękujemy/');
Wyjście();
}
add_filter('comment_post_redirect', 
„przekieruj_po_komentarzu”);
  1. Zmienić nazwę strony na ND linii 2
  2. Zapisz zmiany

Otóż ​​to. Możesz teraz przejść i przetestować funkcję. Otwórz dowolny ze swoich postów i zostaw komentarz. Jeśli zrobiłeś wszystko poprawnie, powinieneś trafić na stronę http://www.twojawitryna.com/podziękowania lub tę określoną w drugiej linii kodu.

Strona z podziękowaniami

Nie zapomnij podziękować ludziom za komentarze, ale także nie zapomnij, że chcesz, aby odwiedzający pozostali na stronie i kontynuowali przeglądanie. Dobrym pomysłem może być dodanie listy ostatnich lub najpopularniejszych postów, a może nawet lepiej, aby wylistować wszystkie powiązane posty, które mogą zainteresować komentatora. Jeśli masz listę mailingową, to jest to dobre miejsce, aby zaproponować jej subskrypcję.

Chociaż ta funkcja oferuje łatwy i szybki sposób przekierowywania użytkowników po pozostawieniu przez nich komentarza, możesz zainteresować się wtyczką, która zapewni Ci dodatkowe funkcje.

Przekieruj użytkowników po wyszukiwaniu, jeśli znaleziono tylko jeden wynik

Funkcja wyszukiwania jest niezbędna, jeśli masz do czynienia z większą liczbą artykułów. Jeśli piszesz na co dzień, wyobraź sobie liczbę artykułów rozrzuconych po różnych kategoriach. Jeśli publikujesz tylko trzy krótkie artykuły dziennie, po pierwszym roku w Twojej bazie danych będzie ponad tysiąc różnych tytułów. Teraz wyobraź sobie, że pierwszy raz wchodzisz na stronę w poszukiwaniu czegoś konkretnego – będziesz chciał tego poszukać.

Domyślnie WordPress przeszukuje tytuły postów, tagi i oczywiście treść. Tak więc, jeśli szukasz słowa lub konkretnej frazy, prawdopodobnie znajdzie dziesiątki postów i stron zawierających zapytanie. Ale co by było, gdyby był tylko jeden wynik wyszukiwania?

Jeśli ktoś szukał bardzo konkretnej frazy lub całego zdania, są szanse, że będzie tylko kilka, a może tylko jeden wynik. Jeśli zostanie znaleziony tylko jeden wynik, przekierowanie użytkownika na stronę wyników wyszukiwania jest zupełnie niepotrzebne . Zamiast tego, dlaczego nie miałbyś przenieść tego użytkownika bezpośrednio do posta/strony znalezionej w wyniku?

Zobaczmy, jak to zrobić:

  1. Otwórz functions.php
  2. Skopiuj ten kod i wklej go na końcu pliku:
 add_action('template_redirect', 
„redirect_search_result”);
function redirect_search_result() {
jeśli (is_search()) {
globalne $wp_query;
if ($wp_query->post_count == 1 && 
$wp_query->max_num_pages == 1) {
wp_redirect (pobierz_permalink( 
$wp_query->posts['0']->ID) );
Wyjście;
}
}
}
  1. Zapisz zmiany

Przygotowałeś WordPressa do nowej funkcjonalności. Po zapisaniu zmian, za każdym razem, gdy użytkownik szuka czegoś, co zwróci tylko jeden wynik, zostanie on przekierowany bezpośrednio do posta/strony.

Nawet jeśli wydaje się to niewiele, jesteśmy pewni, że Twoi goście polubią Cię za uratowanie ich jednym kliknięciem. Zapisanie kliknięcia tutaj i kliknięcia tam spowoduje lepsze wrażenia użytkownika i prawdopodobnie jest to coś, czego chcesz na swojej stronie, prawda?

Przekieruj użytkowników, gdy w danej kategorii znaleziono tylko jeden post

Zamiast otwierać kategorię lub stronę z tagami, która zawiera tylko jeden wynik, możesz przekierować tego użytkownika bezpośrednio do posta/strony. Jak w przypadku większości naszych fragmentów kodu, wystarczy skopiować i wkleić kod:

Przekieruj użytkownika, jeśli w kategorii lub tagu był tylko jeden post:

  1. Otwórz plik functions.php
  2. Skopiuj i wklej następujący kod:
 funkcja przekierowanie_do_post(){
globalne $wp_query;
if( is_archive() && $wp_query->post_count == 1 ){
Poczta();
$post_url = get_permalink();
wp_redirect ($post_url );
}
} add_action('template_redirect', 'redirect_to_post');
  1. Zapisz zmiany

Gdy skończysz z kodem i zapiszesz zmiany, możesz przetestować tę funkcję, otwierając stronę kategorii lub tagu, która zawiera tylko jeden post/stronę. Zamiast otwierać stronę, na której wyświetlany jest tylko jeden post/strona, zostaniesz przekierowany bezpośrednio do posta . Niesamowite, prawda?

Ponieważ niektórzy użytkownicy mogą się tym zdezorientować, dobrym pomysłem byłoby dodanie niestandardowej wiadomości, która poinformuje użytkowników, że znaleziono tylko jeden wynik i że nastąpiło przekierowanie. Jeśli chcesz to zrobić, możesz zostawić wiadomość na górze postu/strony, do której użytkownik został przekierowany, wstawiając proste stwierdzenie „echo”. W takim przypadku Twój kod wyglądałby tak:

 funkcja przekierowanie_do_post(){
globalne $wp_query;
if( is_archive() && $wp_query->post_count == 1 ){
Poczta();
$post_url = get_permalink();
wp_redirect ($post_url );
}
echo "Ponieważ znaleziono tylko jeden wynik, 
zostałeś przekierowany do tego posta/strony!";
}
add_action('template_redirect', 'redirect_to_post');

Teraz, gdy nawet wiadomość została zaimplementowana, skończysz i nie będziesz musiał zajmować się tymi kategoriami i tagami, które zawierają tylko jeden post/stronę. Ale nie pozwól, aby ta funkcja była wymówką dla nie pisania nowych artykułów w tej kategorii.

Przekieruj użytkowników na losową stronę w WordPress

To może nie być standardowa funkcja każdej witryny WordPress, ale z pewnością może być fajnym narzędziem, które możesz mieć gdzieś w swojej witrynie. Jeśli dużo piszesz lub masz liczne galerie, możesz mieć tysiące stron, których przeciętny użytkownik nie zobaczy . Dlaczego więc nie zrobić czegoś ciekawszego, przekierowując użytkownika do losowego posta?

OK, nie będziesz przekierowywał użytkownika do losowego posta bez jego wiedzy ani oczywiście nie robił tego na stronie głównej. Ale możesz stworzyć prosty przycisk lub link, który użytkownik może kliknąć, po czym zostanie przeniesiony na inną stronę Twojej witryny. Może to galeria. Może fajny wstępniak, który napisałeś lata temu. Kto wie. To może być zabawne.

Zacznijmy:

  1. Najpierw musisz przygotować swój link przekierowania. Otwórz plik functions.php
  2. Skopiuj i wklej następujący kod:
 add_action('init','random_add_rewrite');
funkcja random_add_rewrite() {
globalne $wp;
$wp->add_query_var('losowy');
add_rewrite_rule('losowy/?
  1. Zapisz zmiany
  2. Wejdź na www.twojadomena.com/?random=1

, 'index.php?random=1', 'top'); } add_action('template_redirect','random_template'); function random_template() { if (get_query_var('random') == 1) { $posts = get_posts('post_type=post&orderby=rand&numberposts=1'); foreach($posty jako $post) { $link = get_permalink($post); } wp_redirect($link,307); Wyjście; } }

Po tym jesteś gotowy, aby utworzyć swój link/przycisk. Wszystko, co musisz zrobić, to link do http://www.twojadomena.com/?random=1 i za każdym razem, gdy użytkownik otworzy stronę, zostanie przekierowany na losową stronę. Ciesz się nową funkcją.

Przekierowanie do konkluzji

Wcześniej czy później będziesz chciał przekierować określonych użytkowników w określonych sytuacjach. Niezależnie od tego, czy jest ku temu dobry powód i chcesz, aby odwiedzający coś kupili, czy po prostu chcesz, aby proces logowania był wygodniejszy, ten samouczek pomoże Ci zarządzać przekierowaniami.

Jeśli czujesz się wystarczająco dobrze z kodowaniem, będziesz w stanie to poprawić i przekierować użytkowników również w różnych sytuacjach. Jeśli nie, mamy nadzieję, że te przykłady wystarczyły, aby zaspokoić Twoje potrzeby.