WordPress: Panel Logowania w Sidebar
W WordPress zawsze mnie denerwowała strona logowania, nie tylko to, że wygląda inaczej niż zastosowana skórka. Nie podobała mi się konieczność wejścia w kolejną podstronę tylko po to aby się zalogować. I jeszcze jedno … po zalogowaniu następuje przekierowanie do profilu/admina, a ja chcę na stronę na której się logowałem! Praktyczny przykład: wchodzisz na stronę z postem, chcesz zostawić komentarz jako Ty, wpisujesz login oraz hasło, klikasz loguj i… jesteś zalogowany na stronie z postem w którym chcesz zamieścić komentarz. A teraz wyobraź sobie jak to się robi w „zwykłym” WP. Widać różnicę? No to zaczynamy.
Otwieramy w katalogu ze skórkami plik sidebar.php i wstawiamy w niego prosty kod wyświetlający formularz logowania, link do rejestracji i do przypomnienia hasła w przypadku niezalogowanych, natomiast w przypadku zalogowanych użytkowników link do profilu i wylogujący:
if ( is_user_logged_in() ) {
Meta
global $userdata;
?>
user_level == 10 ) { // Dla admina, zmien wg wlasnego uznania ?>
Oczywiście dostępne linki (mowa głównie o tych dostępnych dla administratora) można zmienić wedle własnego uznania.
Następnie bierzemy się za plik wp-login.php.
Dla akcji login ( case ‘login’ ) zmieniamy domyślne przekierowanie (wp-admin) na główną stronę naszego bloga oraz odkodujemy przychodzący link przekierowania. Wymieniamy kod:
if ( !isset( $_REQUEST['redirect_to'] ) )
$redirect_to = 'wp-admin/';
else
$redirect_to = $_REQUEST['redirect_to'];
na:
if ( !isset( $_REQUEST['redirect_to'] ) || empty( $_REQUEST['redirect_to'] ) )
$redirect_to = get_settings('siteurl').'/';
else
$redirect_to = rawurldecode( $_REQUEST['redirect_to'] );
Aby również użytkownicy mający możliwość (uprawnienie) edycji postów byli przekierowani na stronę, z której się logowali, musimy zakomentować (lub usunąć) następujące linie:
/* if ( !$user->has_cap('edit_posts') && ( empty( $redirect_to ) || $redirect_to == 'wp-admin/' ) )
$redirect_to = get_option('siteurl') . '/wp-admin/profile.php'; */
I to w zasadzie tyle, choć jeszcze, aby wylogowywało nas na główną stronę (a nie na „starą” stronę logowania), dla akcji logout (case ‘logout’ w pliku wp-login.php) zmieniamy linijkę:
$redirect_to = 'wp-login.php?loggedout=true';
na
$redirect_to = get_settings('siteurl').'/';
i tyle (-:
Update:
Duży update posta do obecnej postaci jaka się u mnie prezentuje. Opisy na podstawie WordPress 2.1
Lipiec 7th, 2006 at 10:30
mnie tez to denerwowalo :D
Styczeń 20th, 2008 at 23:21
Witaj mógłbyś zaktualizować to do 2.3
Marzec 21st, 2008 at 16:49
Szczerze, nie widzę takiej potrzeby, praktycznie nikt z tego nie korzysta, a po za tym w 2.3 idea jest taka sama, a drobiazgi niekompatybilne można samemu wyłapać i zmienić.
Kwiecień 12th, 2008 at 21:07
Zastanawiam się dlaczego nie wyświetla się to w ogóle w bloku, tylko do tego dany blok ginie. Coś nie tak tutaj jest…
Kwiecień 12th, 2008 at 21:15
Tak jak myślałem, mała poprawka:
Meta
< ?php
if ( is_user_logged_in() ) {
global $userdata;
?>
< ?php if ( $userdata->user_level == 10 ) { // Dla admina, zmien wg wlasnego uznania ?>- /wp-admin/index.php">Nowości
- /wp-admin/post.php">Dodaj wpis
- /wp-admin/moderation.php">Poczekalnia
- /wp-admin/plugins.php">Wtyczki
- /wp-admin/profile.php">Profil
- /wp-login.php?action=logout">Wyloguj się!
< ?php } ?>
< ?php } else { ?>
< ?php } ?>
Kwiecień 12th, 2008 at 21:16
Edit: coś nie bardzo mi wyszło umieszczenie kodu
Kwiecień 13th, 2008 at 10:09
Poprawiłem (chodziło o jeden zabłąkany slash ?), dzięki.
Październik 30th, 2008 at 01:49
ja to uzywam i to nie do celow swoich tylko dla uzytkownikow.. prowadze strone kulinarna i dalej to skrypcik co napisales dla nich aby sie mogli logowac i dodawac przepisy
Październik 30th, 2008 at 01:52
no ja mam 2.6.3 i jakos tych dodatkowcyh opcji nie moglem poprawic i zalapac…
moze chcialbys pomoc. to wtedy mialbym wszytsko tak jak nalezy.
chodzi o te przekirowania w wp-login itp
Marzec 15th, 2009 at 19:43
No właśnie ja też chciałem tego użyć w nowszej wersji 2.6 albo 2.7 i się zaciąłem na zmianach. Czy jest szansa na uaktualnienie dla nowego WP?
Grudzień 29th, 2009 at 15:15
dzięki :)
Styczeń 26th, 2010 at 19:36
Możesz to poprawić do wersji 2.9.1 ?
Luty 25th, 2010 at 11:14
Witam jestem świeży w temacie WordPress i chciałem się dowiedzieć czy na WP można postawić niewielki portal informacyjny i czy można tak zmodyfikować panel użytkownika by można było przesyłać wiadomości między zarejestrowanymi użytkownikami?