publikacja: 17 czerwca 2010, autor: , komentarzy 59 https://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.

Komentarze

  1. marsjaninzmarsa 14 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 14 lat temu:

    ale, zeby odrazu pedobear’a? ; )

    odpowiedz
  3. SpeX 14 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 14 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 14 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 14 lat temu:

      A jak?

      odpowiedz
    4. Olek 14 lat temu:

      Spex, w poprzednim artykule miałeś zobrazowane jak napisać własną wtyczke https://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 11 lat 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 14 lat temu:

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

    odpowiedz
    1. Szymon Skulimowski 14 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 14 lat temu:

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

    odpowiedz
    1. marsjaninzmarsa 14 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 14 lat temu:

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

      odpowiedz
    3. marsjaninzmarsa 14 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 14 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 14 lat temu:

      Jasne – ja@gmail.com :)

      odpowiedz
    6. marsjaninzmarsa 14 lat temu:

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

      odpowiedz
    7. aga-aa 14 lat temu:

      jasne, już sle dziękuje :)

      odpowiedz
  6. Szym 14 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 14 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 14 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 14 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 14 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 14 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 14 lat temu:

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

    odpowiedz
  9. Showroom 13 lat temu:

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

    odpowiedz
    1. Szymon Skulimowski 13 lat temu:

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

      odpowiedz
  10. Anonim 13 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 13 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 13 lat temu:

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

      odpowiedz
  12. Kiedy warto zastąpić plik functions.php wtyczką funkcjonalną i jak to zrobić? | WPNinja 13 lat temu:

    […] 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 […]

    odpowiedz
  13. SHOX! 13 lat temu:

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

    odpowiedz
  14. MArian 12 lat 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 12 lat 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
  15. Dominik – kinbot 12 lat 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 12 lat 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
  16. A 12 lat 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 12 lat 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 12 lat 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 12 lat 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
  17. A 12 lat 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 12 lat 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 12 lat 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
  18. Anonim 11 lat temu:

    :)

    odpowiedz
  19. Piotr Krotkiewski 11 lat 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 11 lat temu:

      Po prostu użyj Gravatara?

      odpowiedz
    2. Piotr Krotkiewski 11 lat 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 11 lat 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 11 lat 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: https://wordpress.org/plugins/wp-user-avatar/

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

      odpowiedz
    5. Piotr Krotkiewski 11 lat temu:

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

      odpowiedz
  20. Jakub 11 lat temu:

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

    odpowiedz
  21. Bruttallus 11 lat 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 11 lat temu:

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

      odpowiedz
    2. Paweł Knapek 11 lat 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 11 lat 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
  22. Koval 10 lat temu:

    test avatara…. :)

    odpowiedz
    1. Szymon Skulimowski 10 lat temu:

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

      odpowiedz
  23. Andrzej 10 lat temu:

    Dzięki, pomogłeś ;)

    odpowiedz
  24. Przemek 7 lat temu:

    Witam. Wkleiłem kod do functions.php Pojawiła się też nowa pozycja avatara w panelu, ale nie wyświetla mi się moje zdjęcie. Co zrobiłem nie tak? Mogę prosić o pomoc?

    odpowiedz

Dodaj własny komentarz


Warning: Undefined variable $user_ID in /home/klient.dhosting.pl/wpn/wpninja.pl/public_html/wp-content/themes/wpninja/comments.php on line 95

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 […]