RSS
RSS
  • Już 20 sierpnia nowy wpis:
  • "Problem: WPML automatycznie ustawia lub przywraca niepoprawne tłumaczenie"

Przejście do Nowego Wpisu po zalogowaniu do WordPressa


Kategorie: Administracja, Optymalizacja, Tworzenie stron, WordPress, Wszystkie

0

Jeśli piszesz na swoim blogu regularnie, to może przyzwyczaiłeś się, że Kokpit nie jest w sumie zbytnio przydatny. Komentarze moderuje się zazwyczaj e-mailowo, "Szybki wpis" jest zbyt ubogi, by go używać w większości przypadków, a pozostałe opcje to raczej bajery.

Reasumując, lepiej by było po zalogowaniu się automatycznie być przeniesionym do podstrony z najczęściej wykonywaną czynnością - czy to jest dodawanie nowego wpisu, czy strony, czy moderowanie komentarzy.

Jedno kliknięcie plus szukanie opcji w menu WordPressa robi różnicę, jeśli powtarza się tą procedurę po 2 razy dziennie każdego dnia: nawet, jeśli każdy taki proces zajmie 3 sekundy, w skali roku traci się na to 36 minut.

Dzisiaj rozwiążemy ten problem, dostając 36 minut rocznie w nagrodę :)

Przekierowanie po zalogowaniu do WordPressa

Swój kod oparłem o rozwiązanie Brada Williamsa (on jest autorem pierwszej funkcji, ja - drugiej).

W pliku functions.php używanego przez nas szablonu dopisujemy przed końcowym znacznikiem ?>:

$redirect_from_dashboard_to = admin_url('post-new.php');

add_action('login_form', 'redirect_after_login');

function redirect_after_login() {
	global $redirect_to, $redirect_from_dashboard_to;
	if (!isset($_GET['redirect_to'])) {
		$redirect_to = $redirect_from_dashboard_to;
	}
}

add_action( 'load-index.php', 'redirect_from_dashboard', 1, 0 );

function redirect_from_dashboard(){
	global $redirect_from_dashboard_to;
	$ref=wp_get_referer();
	if($ref){
		$parsedRef=parse_url($ref);
		$parsedSiteUrl=get_option('siteurl');
		if($parsedRef['host'] == $parsedSiteUrl['host']){
			wp_redirect($redirect_from_dashboard_to);
		}
	}else{
		wp_redirect($redirect_from_dashboard_to);
	}
}

Po zalogowaniu zostaniemy przeniesieni na podstronę tworzenia nowego Wpisu. Zawarty w pierwszej linijce kod admin_url('post-new.php') wstawia adres do panelu administracyjnego Twojego bloga (zazwyczaj http://jakastam-twoja-domena.pl/wp-admin/), a dalej dodajemy tylko standardowy adres podstrony z tworzeniem nowego wpisu. Oczywiście po znaku równości można podać dowolny adres do przekierowania, ale ten kod jest uniwersalny niezależnie od adresu Twojej strony i adresu panelu administracyjnego właśnie dzięki zastosowaniu admin_url('post-new.php').

Pierwsza funkcja odpowiada za to, że przekierowanie będzie działać tylko bezpośrednio po zalogowaniu i tylko, jeśli nie mamy zostać przekierowani na jakiś inny adres (taka sytuacja występuje np. po kliknięciu "Edytuj" na pasku administracyjnym WordPressa podczas przeglądania treści swojej strony).

Druga funkcja sprawdza i przekierowuje ze strony "Kokpit" (i tylko z niej) na tą samą podstronę określoną w pierwszej linijce tylko w dwóch przypadkach:

  • jeśli nie odwiedziłeś wcześniej żadnej innej witryny (otworzyłeś nową Kartę w przeglądarce i udałeś się do panelu administracyjnego swojego bloga z pominięciem logowania),
  • jeśli strona odwiedzona bezpośrednio przed przejściem do "Kokpitu" nie była podstroną w Twoim panelu administracyjnym, tylko jakąś inną.

W praktyce więc druga funkcja zapewnia, że zobaczymy Kokpit tylko, jeśli będziemy w panelu WordPressa i klikniemy na link do niego, a we wszystkich innych przypadkach (np. przy otworzeniu bezpośrednio adresu http://jakastam-twoja-domena.pl/wp-admin/) zostaniemy przekierowani na podstronę z pierwszej linijki kodu.

Jeśli chcesz przekierowywać nie wszystkich użytkowników, a tylko niektórych lub ich grupy, użyj wtyczki Peter's Login Redirect.

Komentuj

Subscribe without commenting