
Tworząc komercyjną stronę opartą o WordPress często zachodzi potrzeba podmiany logo, które znajduje się na stronie logowania / rejestracji. Chciałbym się z Wami podzielić sposobem na uzyskanie takiego efektu, który jest prosty, „bez-wtyczkowy” i odporny na aktualizacje.
Standardowy formularz logowania / rejestracji
Dla przypomnienia - standardowy formularz logowania wygląda następująco:

WordPress - standardowy formularz logowania
Naszym zadaniem jest podmiana WP-owego logo na nasze w taki sposób aby:
- nie obciążać WordPressa niepotrzebnymi wtyczkami,
- nie trzeba było aktualizować odpowiednich plików po każdej aktualizacji skryptu,
- zbytnio się nie namęczyć :-).
Krok 1: Przygotowanie pliku graficznego:
Nowe logo powinno mieć wymiary pokrywające się ze starym czyli maksymalnie 310x70 pikseli. Nic nie stoi na przeszkodzie jednak abyśmy dali obrazek o mniejszych rozmiarach ponieważ zostanie od automatycznie wycentrowany.
Przygotowany plik wgrywamy na serwer do katalogu z używanym szablonem graficznym. Załóżmy, że nazwiemy go „login-logo.gif”.
Krok 2: Tworzymy plik CSS:
Tworzymy plik login.css i umieszczamy go w katalogu szablonu graficznego. W treści natomiast wpisujemy:
.login h1 a { background: url(login-logo.gif) no-repeat top center; }
Plik posłuży nam do podmiany standardowego logo na nowe.
Krok 3: Dodajemy trochę magii:
Otwieramy plik functions.php (katalog z używanym szablonem graficznym) i uzupełniamy go o poniższy kawałek kodu:
function new_login() { echo '<link rel="stylesheet" type="text/css" href="' . get_option('siteurl') .'/wp-content/themes/'. get_option('template') .'/login.css" />'."\n"; } add_action('login_head', 'new_login');
Dzięki niemu na stronach logowania i rejestracji wczytany zostanie dodatkowy plik CSS, który utworzyliśmy w poprzednim kroku.
Krok bonusowy: Podmieniamy adres odnośnika:
W komentarzach daliście znać, że interesowałaby Was również opcja podmiana adresu odnośnika. Aby to zrobić trzeba dopisać dodatkowo do pliku functions.php poniższy kod:
function new_login_headerurl($url) { return get_bloginfo('siteurl'); } add_filter("login_headerurl","new_login_headerurl"); function new_login_headertitle($message) { return get_bloginfo('name'); } add_filter("login_headertitle","new_login_headertitle");
Prawda, że nie było trudne? Odważne osoby, które nie boją się zaprezentować efektów swojej pracy zapraszam do komentarzy :-).

Komentarze (28)
Ja wiem, czego tu się bać ;) witryna i tak raczej dla zamkniętej grupy stworzona więc mi nie żal pokazać: http://55ddw.org
odpowiedzłech, łech, z rozpędu zapodałem główną a nie panel logowania: http://55ddw.org/wp-login.php (jakby się adminowi chciało, można adres podmienić ;)
odpowiedzSzkoda tylko Kaspel, że został jeszcze alt i link do wordpressa.
odpowiedzA propos. Jak to można zmienić?
odpowiedzJa taką możliwość wykorzystuje już od dawna chodź wystarczyło podmienić oryginalne logo WordPressa na nasze: http://historialomzy.pl/wp-login.php
Jeżeli chcesz zmienić link i alt zedytuj plik wp-login.php
wpisując oczywiście swój adres i nazwę serwisu
odpowiedzWidzę, że coś tu opcja kodu nie działa, prosiłbym o edycję i poprawienie…
odpowiedz@nomex
odpowiedzTwoja metoda ma jedną drobną wadą - w momencie update’a trzeba się pilnować, żeby obrazka od logo nie podmieniać - co na dłuższą metę jest upierdliwe.
Na życzenie uzupełniłem artykuł o taki bajer (krok bonusowy) :-).
odpowiedzW sprawie uzupełnienie.
odpowiedzCzy znasz jakiś sposób by sytuacjach takich jak ta, gdy gość znacznie modyfikujesz wpis, wymusić ponowne opublikowane go na RSSie?
Zauważyłem tą niekonsekwencję alta i linka… ale nie miałem czasu się bliżej przyjrzeć (pewnie bym sam i tak nie naprawił), a tu wracam na bloga i już jest rozwiązanie :) fajnie, fajnie!
odpowiedza tu tak … lubie tą stronę http://www.polandbowling.eu/wp-login.php
odpowiedzCzy da się zrobić 3 kolumny z dwóch? Magicznym sposobem?
odpowiedzWitam,
poza tematem, ale co tam: spotkał się ktoś z takim problemem, że WP w RSS-a wrzuca wypis (excerpt) zamiast treści posta mimo, że zaznaczona jest opcja „W kanałach nowości wyświetlaj: całą treść”? Na innym blogu (też 2.8.4) nie mam tego problemu i staram się zlokalizować przyczynę.
Pozdrawiam.
odpowiedzNo tak… To wina Firefoxa. Jak feed miał postać domyślną, to Fx czytał tylko excerpty, jak zostało puszczone przez Feedburbera - nie ma problemu…
Pozdrawiam.
odpowiedzCiekawy art, skorzystałem choć pod operą jakoś dziwnie mi się wyświetla.
odpowiedzFajny sposób, nie wiedziałem, że system szablonów wp jest aż tak elastyczny… :)
odpowiedzI przy okazji podczepiam się pod pytanie @SpeX’a - też chciałem kiedyś uzyskać ten efekt… ;)
A skoro jesteśmy przy temacie logowania…
odpowiedzTo małe pytanko… lekko obok… ;-)
Jest taki typ stron w moim przypadku chodzi o stronę statyczną - prywatne- czy nie wiecie Drodzy WordPress-owicze czy da się i ewentualnie jak zrobić taką „ukrytą” czyli prywatną stronę niewidoczną dla wszystkich - by w momencie logowania konkretnego Usera dodawała się do innych widocznych dla wszystkich stron na stronie? Czyli innymi słowy żeby po zalogowaniu były widoczne strony dla wszystkich + strona(y) dla konkretnego Usera .
@gawa: czytałem kiedyś o takim pluginie … ale gdzie i kiedy … ? hmmmm
odpowiedzA ja zrobiłem tak:
odpowiedzhttp://marsel.webbo.pl/wp-login.php
@Marsel: Nie ma co, naprawdę ładna… Jestem pod wrażeniem… :D
odpowiedz@Robb: a może sobie przypomnisz ? szukałem, googlowałem i jakoś nie mogę trafić… kurde… bez problemu robię to w prostym CMSimple … a w moim ulubinym WP - nie mogę… a może jeszcze Ktoś ma jakieś propozycje … ?
odpowiedzJa zrobiłem tak: http://grochu.eu/wp-login.php No i wybrałem plik .png a nie .gif
odpowiedz:)
Ciekawy bajer :-)
odpowiedzTutaj jest jeszcze metoda uzyskania tego samego za pomocą modyfikacji w functions.php. http://digwp.com/2010/03/wordpress-functions-php-template-custom-functions/
Jedenasta funkcja od góry. Jest tam zresztą kilka innych przydatnych funkcji.
Pozdrowienia!
odpowiedzDzięki, świetny tutorial, wiedzę z niego będę wykorzystywac dość często :)
A co do loga: nie musi się mieścić w podanych w artykule wymiarach. Rozmiary linka mieszczącego logo można spokojnie ustawiać w css, więc, do powyższego przykładu należy dodać:
h1 a {height: 666px;} (dla loga o szatańskiej wysokości na przykład) ;-)
odpowiedzZrobiłem wszystko jak pokazałeś i nic się nie zmienia . Logo jest to samo co wcześniej.
Oczywiście nowe logo już wrzuciłem na serwer.
W czym może być problem.
Pozdrawiam.
A propos. fajna stronka, trzymaj tak Szymon!
odpowiedzWitam,
po ostatniej aktualizacji WP do 3.3 trzeba w pliku .css zamienić:
na
Zgadza się, już poprawiłem kod w artykule. Dzięki za czujność i informację.
odpowiedzDodaj własny komentarz
Odnośniki z innych stron (3)
Lista innych stron, które w jakiś sposób odnoszą się do opublikowanej tutaj treści:
[…] Tworząc komercyjną stronę opartą o WordPress często zachodzi potrzeba podmiany logo, które znajduje się na stronie logowania / rejestracji. Chciałbym się z Wami podzielić sposobem na uzyskanie takiego efektu, który jest prosty, „bez-wtyczkowy” i odporny na aktualizacje. (więcej na WP Ninja…) […]
[…] w ten sposób nie odkrywam – rozwiązanie jest stare i przedstawione juz niegdyś na stronie wpninja.pl. Pozwole sobie jednak w skrócie opisać co trzeba […]
[…] post types),dodanymi na potrzeby strony shortcodes,modyfikacjami panelu administracyjnego (np. zmiana logo na stronie logowania),własnymi taksonomiami.Co pozostawić w pliku functions.php?definicje rozmiarów […]