publikacja: 17 czerwca 2010, autor: , komentarzy 58 http://wpninja.pl/artykuly/wordpress-dodawanie-wlasnego-domyslnego-awatara/

WordPress – dodawanie własnego, domyślnego awatara

WordPress – dodawanie własnego, domyślnego awatara fot. jared

Rozszerzenie listy domyślnych awatarów o własne propozycje czyli szybki i skuteczny sposób na nadanie stronie bardziej indywidualnego i profesjonalnego charakteru.

Ustawianie domyślnego awatara

Jeśli komentujący poda adres e-mail, który został zarejestrowany w serwisie Gravatar, to obok komentarza pojawi się wybrany przez niego obrazek. W przypadku gdy go nie poda lub adres taki nie został zarejestrowany wyświetli się obrazek nazywany domyślnym awatarem.

W panelu administracyjnym w zakładce „ustawienia / dyskusja” mamy możliwość wybrania jednej z 6 propozycji wyglądu domyślnych awatarów. Pierwsze 3 są stałymi obrazkami, kolejne są generowane losowo:

Ustawianie domyślnego awatara

Niestety, brakuje opcji pozwalającej na wybranie własnego obrazka.

Rozszerzanie listy domyślnych awatarów

Cała operacja sprowadza się do zamieszczenia prostego kodu PHP w pliku functions.php aktualnie używanego szablonu graficznego:

add_filter('avatar_defaults', 'custom_avatar');
 
function custom_avatar ($avatars) {
   $custom_avatar_url = get_template_directory_uri().'/img/nazwa-pliku.gif';
   $custom_avatar_title = "Nazwa awatara";
   $avatars[$custom_avatar_url] = $custom_avatar_title;
   return $avatars;
}
  • $custom_avatar_url – adres obrazka

    W powyższym przykładzie obrazek nazywa się „nazwa-pliku.gif” i znajduje się w katalogu /img/ w aktualnie używanym szablonie graficznym.

    Zamiast funkcji get_template_directory_uri można użyć get_stylesheet_directory_uri. Różnica pomiędzy nimi polega na tym, że jeśli aktualnie używany motyw jest motywem potomnym to pierwsza funkcja zwróci adres katalogu motywu rodzica a druga motywu dziecka.

  • $custom_avatar_title – nazwa obrazka

    Zostanie wyświetlona w panelu administracyjnym, na stronie z wyborem domyślnego awatara.

Efektem takiej operacji będzie rozszerzenie listy domyślnych awatarów o naszą własną propozycję (ostatnia pozycja – „Pedobear”):

Ustawianie własnego, domyślnego awatara

Zastosowana metoda działa bez względu na to, czy wyświetlamy komentarze w tradycyjny sposób, czy za pomocą „nowego” systemu komentarzy.

tagi: ,

Komentarze

  1. marsjaninzmarsa 6 lat temu:

    Ciekawa porada – jestem właśnie w trakcie wdrażania szablonu dla mojego znajomego, więc może to wykorzystam. ;)

    odpowiedz
  2. Bartosz 6 lat temu:

    ale, zeby odrazu pedobear’a? ; )

    odpowiedz
  3. SpeX 6 lat temu:

    Takie pytanie, czy wszystkie takie rozwiązanie ToDo muszą się opierać o functions.php szablonu? Nie da się tego rozwiązać w jakiś inny sposób niezależny od szablonu?
    Np jakieś główne functions.php WP bądź jakiś w formie plugina (zrobienie własnego plugina odpowiedzialnego za jakieś działanie lub emulującego plis functions.php szablonu)?

    odpowiedz
    1. marsjaninzmarsa 6 lat temu:

      Tylko po co? Przecież i tak jeśli tworzysz własny awatar, to raczej po to żeby był dostosowany do szablonu bloga. A poza tym, co jaki czas zmieniasz szablon? Chyba nie na tyle często, żeby było specjalnie męczące skopiowanie tych kilku linijek do nowego…? ;)

      odpowiedz
    2. Szymon Skulimowski 6 lat temu:

      Nie da się tego rozwiązać w jakiś inny sposób niezależny od szablonu?

      Jasne, praktycznie wszystko co siedzi w functions.php można przerobić na wtyczkę.

      odpowiedz
    3. SpeX 6 lat temu:

      A jak?

      odpowiedz
    4. Olek 6 lat temu:

      Spex, w poprzednim artykule miałeś zobrazowane jak napisać własną wtyczke http://wpninja.pl/tworzymy-dodatkowe-pole-w-profilu-uzytkownika/

      Czyli wszystko praktycznie sprowadza sie z wklejenia tego co ma byc w pliku functions.php do wp-content/plugins/nazwa-wtyczki.php :)

      odpowiedz
    5. Szymon Skulimowski 3 lata temu:

      A jak?

      Ten artykuł na pewno okaże się pomocny – Kiedy warto zastąpić plik functions.php wtyczką funkcjonalną i jak to zrobić?.

      odpowiedz
  4. aniec2 6 lat temu:

    WP 3.0 już smiga a wpsu od Szymona nie ma;/

    odpowiedz
    1. Szymon Skulimowski 6 lat temu:

      Dzisiaj będzie tylko krótkie podsumowanie nowości ale na tygodniu rozpocznie się seria wpisów omawiająca szczegółowo poszczególne rzeczy.

      odpowiedz
  5. aga-aa 6 lat temu:

    a w którym miejscu wkleić ten kod w pliku function.php?

    odpowiedz
    1. marsjaninzmarsa 6 lat temu:

      „obojętnie w którym”, powiedziałby ktoś. Ale że jest to spory skrót myślowy, to wklej go na samym końcu, ale przed „?>”. :)

      odpowiedz
    2. aga-aa 6 lat temu:

      przed „?”>?
      nie mogę się połapać w tym WP :(

      odpowiedz
    3. marsjaninzmarsa 6 lat temu:

      To nie WP, a PHP. :)

      Na samym końcu powinien być właśnie taki ciąg znaków – to coś w rodzaju zamknięcia dokumentu – przed nim jest kod, a za nim czysty tekst. Po prostu poszukaj tych znaczków w pliku, i wklej to przed nimi :)

      odpowiedz
    4. aga-aa 6 lat temu:

      Z tym i z tym mam problem ;)

      Właśnie szukałam na końcu, ale tam mam takie cuś zupełnie inne. Czy mogłabym Ci wysłać na email ten kod i pokazałbyś mi gdzie go wkleić?

      odpowiedz
    5. marsjaninzmarsa 6 lat temu:

      Jasne – ja@gmail.com :)

      odpowiedz
    6. marsjaninzmarsa 6 lat temu:

      Oczywiście zamiast „ja” wstawi mój nick…

      odpowiedz
    7. aga-aa 6 lat temu:

      jasne, już sle dziękuje :)

      odpowiedz
  6. Szym 6 lat temu:

    Czy ktoś próbował zrobić, aby wyświetlało własne awatary losowo puli? Tak jak w przypadku Gravatara te potworki i wzorki.

    odpowiedz
  7. wojTrek 6 lat temu:

    zrodlo zaznaczenia z http://domena/wp-admin/options-discussion.php

    Domyślny awatar

    Przy komentarzach użytkowników, którzy nie mają własnego awatara wyświetlane może być logo lub awatary utworzone na podstawie ich adresów e-mail.

    Człowiek-widmo
    Brak

    Logo Gravatara
    Identicon (generowany)
    Wavatar (generowany)
    MonsterID (generowany)

    oko

    Oczywiście robie wszystko wg wskazówek.
    Pozdrawiam serdecznie

    odpowiedz
    1. wojTrek 6 lat temu:

      moze tak sie uda?

      label input name=”avatar_default” id = ” avatar_http://my.wargin.eu/wp-content/themes/refreshing/img/avatarek.gif” value = ” http://my.wargin.eu/wp-content/themes/refreshing/img/avatarek.gif” checked=”checked” type=”radio” img alt = „” src = „http: //0.gravatar.com/avatar/ab10cd253c99c30bb3beafcfb2772c87?s=32&d=http%3A%2F%2Fmy.wargin.eu%2Fwp-content%2Fthemes%2Frefreshing%2Fimg%2Favatarek.gif%3Fs%3D32&r=G&forcedefault=1″ class=”avatar avatar-32 photo” height=”32″ width=”32″> oko

      po prostu wtraca sie gravatar, jak to obejsc?

      odpowiedz
    2. Szymon Skulimowski 6 lat temu:

      po prostu wtraca sie gravatar, jak to obejsc?

      Ale tu nie ma co obchodzić. Tak właśnie być powinno bo najpierw gravatar musi sprawdzić czy przypadkiem nie ma awatara dla danego adresu e-mail na swoim serwerze.

      odpowiedz
    3. wojTrek 6 lat temu:

      Dzieki.

      Ta odpowiedz, Szymonie, nie wyczerpuje mojego pytania. Ja postapilem tak, jak w powyzszym poscie, efektu ni ma:-( Na liscie pokazuje sie nazwa avatara, plik graficzny jest na serwerze ale nie wyswietla sie.

      odpowiedz
    4. Szymon Skulimowski 6 lat temu:

      Patrząc na kod Twojej strony mogę polecić jeszcze sprawdzenie czy aby na pewno podałeś prawidłową ścieżkę do pliku (w kodzie, który podałeś wyżej masz wstawiony /img/ a plik faktycznie masz w /images/).

      odpowiedz
  8. Darek 6 lat temu:

    A jak dodać avatar jeżeli jest kilku redaktorów strony opartej na wp?

    odpowiedz
  9. Showroom 5 lat temu:

    Dzięki za ten poradnik, właśnie tej opcji mi brakowało :)

    odpowiedz
    1. Szymon Skulimowski 5 lat temu:

      Świetnie! Rozumiem, że jest zapotrzebowanie na więcej artykułów tego rodzaju?

      odpowiedz
  10. Anonim 5 lat temu:

    No cóż, na pewno początkujących „wordpressowiczów” nie brakuje :) Także, myślę, że takie artykuły się na pewno przydadzą.

    odpowiedz
  11. Kacper 5 lat temu:

    Dziękuję – okazało się pomocne i już na każdym z wpisów widać moje brzydkie główki ;-)

    odpowiedz
    1. Szymon Skulimowski 5 lat temu:

      Proszę bardzo. Cieszę się, że skorzystałeś z artykułu i dałeś o tym znać w komentarzu.

      odpowiedz
  12. SHOX! 5 lat temu:

    Dzięki wielkie, właśnie zaimplementowałem to rozwiązanie na swojej stronie, działa!

    odpowiedz
  13. MArian 4 lata temu:

    Ok ale to jest avatar dla wszystkich. Da sie ustawić dla indywidualnych osób? Np zeby admin miał innego avatara?

    odpowiedz
    1. Szymon Skulimowski 4 lata temu:

      To jest wspólny awatar dla wszystkich osób, które nie ustawiły własnego obrazka w serwisie Gravatar. Jeśli chcesz mieć swój obrazek to wystarczy, że się tam zarejestrujesz.

      A może chodzi Ci o to aby użytkownik mógł ustawić swój obrazek, który będzie używany jedynie w obrębie strony?

      odpowiedz
  14. Dominik - kinbot 4 lata temu:

    Dzięki za pożyteczną instrukcję – wcześniej bezskutecznie próbowałem znaleźć info w sieci lub panelu admina. Myślałem, że może da się to załatwić jakąś wtyczką, ale taki sposób też nie budzi moich zastrzeżeń.

    W zasadzie w WP powinna być jednak opcja wczytania zdjęcia profilowego, tak jak przy wczytywaniu multimediów.

    odpowiedz
    1. marsjaninzmarsa 4 lata temu:

      Są wtyczki, które pozwalają wczytać własne zdjęcie profilowe w panelu. 99% ludu z tego by nie korzystało, więc nie dziwię się, że nie ma tego w core. :)

      odpowiedz
  15. A 4 lata temu:

    A nie można było tego po ludzku opisać?? Krok po kroku, a nie „wkleić” i już – nie działa, mimo wstawienia adresu url zdjęcia!

    odpowiedz
    1. A 4 lata temu:

      Ps. Np. gdzie w functions.php należy to wkleić? W dowolnym miejscu, czy gdzieś konkretnie??
      Co wpisać w temlate_url (czy zostawić tak jak jest?)?
      Trochę bez sensu takie porady, gdzie nie piszesz precyzyjnie co i jak, bo zakładasz, że każdy wie o co chodzi – nie cierpię takich „porad”…

      odpowiedz
    2. marsjaninzmarsa 4 lata temu:

      Wklej po prostu na samym końcu, tuż przed znacznikiem zamykającym „?>” (o ile on występuje w tym pliku). I tyle. Powinno działać z palca.

      Nie zmieniasz w kodzie niczego poza tym, co było napisane, żeby zmienić.

      odpowiedz
    3. Szymon Skulimowski 4 lata temu:

      Dokładnie tak jak napisał marsjaninzmarsa.

      Pamiętaj tylko, że chodzi o plik functions.php, który znajduje się w katalogu aktualnie używanego motywu (np. jeśli używasz motywu „Twenty Twelve” to chodzi o plik /wp-content/themes/twentytwelve/functions.php”). Czasami może się zdarzyć, że motyw w ogóle nie posiada takiego pliku, wtedy trzeba go stworzyć we własnym zakresie.

      odpowiedz
  16. A 4 lata temu:

    I po raz trzeci: dzięki, Mistrzu, za tego rodzaju rady: „to proste: wklej sobie kod i już” – właśnie sobie wkleiłem, tylko nie napisałeś precyzyjnie gdzie, i wywaliło mi cały blog! Noż k…a mać!!!

    odpowiedz
    1. marsjaninzmarsa 4 lata temu:

      Lol. Piszą tekst, pomocny tekst, a ludzie mają pretensję, że się nie znają i rozwalają sobie szablon. Dostajesz to za darmo. Na tacy podane. Nie umiesz tego zastosować – naucz się, nie chce Ci się uczyć, zapłać komuś, kto to umie. A nie wieczne pretensje i wymaganie niewiadomoczego za darmo…

      odpowiedz
    2. Szymon Skulimowski 4 lata temu:

      @A,

      Niestety pisząc takie artykuły trzeba założyć, że czytelnik posiada określoną wiedzę. Akurat tutaj potrzebna była znajomość podstaw budowy plików WordPressa (żeby poprawnie odszukać wspomniany plik functions.php), PHP (żeby poprawnie wstawić kawałek kodu) oraz narzędzi takich jak edytor tekstowy obsługujący UTF-8 czy klient FTP.

      odpowiedz
  17. Anonim 3 lata temu:

    :)

    odpowiedz
  18. Piotr Krotkiewski 3 lata temu:

    Witam,

    Bardzo ciekawy artykuł, ale mam pytanie. Ponieważ taki zestaw umożliwi każdemu użytkownikowi na wykorzystanie danego zdjęcia, a co jeżeli chcemy utworzyć taki avatar tylko na potrzeby autora, tak by był niedostępny dla użytkowników/czytelników bloga??

    Co wtedy zrobić? aż dziwne, że WP nie oferuje opcji wstawienia profilowego zdjęcia dla administratora :O

    odpowiedz
    1. marsjaninzmarsa 3 lata temu:

      Po prostu użyj Gravatara?

      odpowiedz
    2. Piotr Krotkiewski 3 lata temu:

      Ale ja nie chce użyć gravatara, bo to wymaga zalożenie konta, chcę znaleźć sposób bez konieczności zakładania konta, myslę, że WP powinien przewidzieć taką opcje i dla autora wpisów dać możliwość w panelu wstawienie avatara czy coś.

      Jeżeli gravatar będzie ostatecznością – no cóż, nie będzie innego wyjścia.

      odpowiedz
    3. marsjaninzmarsa 3 lata temu:

      Są do tego wtyczki…

      Ale serio, to nie ma sensu – na Gravatar.com rejestrujesz się raz, i masz od razu avatar w masie serwisów z marszu.

      odpowiedz
    4. Szymon Skulimowski 3 lata temu:

      Jeśli nie chcesz korzystać z Gravatara to polecam poniższą wtyczkę. Dzięki niej każdy zarejestrowany użytkownik będzie mógł dodać dowolny obrazek: http://wordpress.org/plugins/wp-user-avatar/

      Swoją drogą szkoda, że zarejestrowanie gravatara wymaga teraz posiadania konta na wordpress.com.

      odpowiedz
    5. Piotr Krotkiewski 3 lata temu:

      Nooo i to jest rzeczowa odpowiedź :-) Bardzo dziekuje za pomoc! Ogólnie bardzo ciekawy blog, chyba muszę go zasubskrybować :)

      odpowiedz
  19. Jakub 3 lata temu:

    Dziękuję za wpis. Bardzo mi pomógł.

    odpowiedz
  20. Bruttallus 3 lata temu:

    W kodzie jest mały błąd jeśli użyjemy go w nowszej wersji WP np 3.8 a mianowicie template_url jest nie poprawną komendą obecnie jest template_directory ;)

    odpowiedz
    1. Szymon Skulimowski 3 lata temu:

      Dzięki za informację! Sprawdzę to jeszcze u siebie i dam znać :-)

      odpowiedz
    2. Paweł Knapek 3 lata temu:

      Yyy… a że tak spytam – o czym właściwie mowa?
      Biega o argument funkcji get_bloginfo ?
      -bo jeżeli tak, to z tego co widzę, to oba są poprawne.
      Działa tak template_directory jak i template_url ….oba de facto zwracają wynik funkcji get_template_directory_uri().

      Status „deprecated” mają natomiast argumenty: home, siteurl i text_direction

      odpowiedz
    3. Szymon Skulimowski 3 lata temu:

      Sprawdziłem – używanie get_bloginfo(template_url) nie jest błędne, ale faktycznie obecnie (ze względu na motywy potomne) zaleca się stosować get_template_directory_uri / get_stylesheet_directory_uri (w zależności od potrzeb).

      Artykuł został zaktualizowany. Dzięki za zgłoszenie.

      odpowiedz
  21. Koval 2 lata temu:

    test avatara…. :)

    odpowiedz
    1. Szymon Skulimowski 2 lata temu:

      Cieszę się, że mogłem pomóc :-)

      odpowiedz
  22. Andrzej 2 lata temu:

    Dzięki, pomogłeś ;)

    odpowiedz

Dodaj własny komentarz

Odnośniki z innych stron

Lista innych stron, które w jakiś sposób odnoszą się do opublikowanej tutaj treści:

  1. Kiedy warto zastąpić plik functions.php wtyczką funkcjonalną i jak to zrobić? | WPNinja

    […] na Twoim blogu.Przykładowo, załóżmy że w pliku functions.php masz zdefiniowany:własny domyślny awatar dla użytkowników orazwłasny przycisk w edytorze wizualnymZakładając, że zależy nam na zachowaniu tej […]