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?


Opublikowano

w

przez

Komentarze

6 odpowiedzi na „Jak dodać inne dane kontaktowe dla użytkownika w WordPressie?”

  1. Awatar Piotr Sajnog

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

    1. Awatar Jakub Milczarek

      Nie – ta funkcja przyjmuje tylko ID jako identyfikator użytkownika…

    2. Awatar Artur

      Zawsze możesz wyciągnąć id za pomocą get_user_by();
      http://codex.wordpress.org/Function_Reference/get_user_by

  2. Awatar SpeX

    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?

    1. Awatar Jakub Milczarek

      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 :)

      1. Awatar SpeX

        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.