Lut
27
2012

Jak dodać inne dane kontaktowe dla użytkownika w WordPressie?

Ostatnio potrzebowałem dla osób zarejestrowanych w serwisie dodać “nadprogramowe” pola kontaktowe i usunąć te zbędne – w naszych warunkach najczęściej są to AIM oraz Yahoo IM.

Okazuje się, że taka przeróbka jest całkiem prosta wystarczy wykorzystać filtr user_contactmethods.

Zaczynamy od wyglądu takiego, jak poniżej:

Najpierw usuniemy zbędne pola – będą to AIM oraz Yahoo IM!
Dodajemy (do pliku function.php) filtr:

add_filter('user_contactmethods', 'usuwanie_danych_kontaktowych');

Tworzymy funkcję:

function usuwanie_danych_kontaktowych($user_contactmethods){
unset($user_contactmethods['yim']);
unset($user_contactmethods['aim']);
return $user_contactmethods;
}

Teraz odpowiedni fragment strony ustawień użytkownika wygląda następująco:

Chcieliśmy jednak dodać coś do siebie, więc proszę – dopisujemy w kodzie funkcji:

$user_contactmethods['fb'] = 'Facebook';
$user_contactmethods['nk'] = 'Nasza-Klasa';

Całość teraz wygląda następująco:

Jeśli teraz pojawi się potrzeba wyciągnięcia tych danych i pokazania ich w naszym szablonie wystarczy skorzystać z funkcji get_user_meta:

echo get_user_meta(X, 'fb', true);

gdzie oczywiście:

  • X – ID naszego użytkownika
  • fb – identyfikator zmiennej, która ma być zwrócona (tutaj nick na Facebooku)

Czy ktoś z Was wykorzystuje w praktyce te pola, czy traktujecie je jako zło konieczne?

Powiązane wpisy

O autorze: Jakub Milczarek

Miłośnik wszystkiego co związane ze sprawami użyteczności, a także specjalista z dziedziny fizykochemii kryminalistycznej. Stronami internetowymi zajmuje się od 1997 roku, a z samym WordPressem zaprzyjaźnił się już w 2007 roku. Miał zaszczyt być szefem organizacji pierwszego polskiego WordCampu w 2010 roku, a w latach 2010-2012 prowadził z sukcesami firmę WP-Expert. Obecnie pracuje jako UX Specialist w OnTheGoSystems. W wolnych chwilach zdobywa Koronę Europy, poszukuje skrzynek OpenCaching i bloguje jako Lodzermensch.

6 komentarzy + Dodaj komentarz

  • Czy zamiast konkretnego ID użytkownika można wpisać ‘user_nicename’?

  • Dwie sprawy:
    1) Według mnie brakuje oczywistej rzeczy, gdzie ja to mam wpisać? Domyślam się iż w function.php. ale nie każdy może o tym wiedzieć.
    2) Jak wprowadzić weryfikację wprowadzanych danych czy dozwolony schemat danych?
    3) Da się zamienić pole na listę wyboru?

    • Ad. 1) Tak oczywiście – bawimy się w pliku functions.php. Dodałem odpowiednią informację do wpisu…

      Ad. 2) O ile się orientuję to nie ma na to prostej metody – musisz dopisać po prostu własną funkcję weryfikującą według swojego algorytmu. Szczerze mówiąc istnienie takiej funkcji w samym WP byłoby bez sensu, bo możliwych typów wprowadzanych informacji jest nieskończona liczba i raczej brak jest jakichkolwiek na to standardów weryfikacyjnych.

      Ad. 3) Nie wiem jak to zrobić w prosty sposób – może ktoś inny podpowie.

      Wyszły ostatecznie trzy sprawy, a nie dwie :)

      • Trzecią wymyśliłem w czasie pisania :P

        ad.2, Dziwię się iż tam niema jako opcja (dodatkowy parametr) wprowadzenia jakiegoś wyrażenia regularnego. Które by właśnie odpowiadało by za klucz do weryfikacji.

Uwaga, leci reklama:

Firefox jest znów szybki!

Gdzie nas czytać?

Autorzy »
Komentujący »
#wpzlecenia »