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?
Komentarze
6 odpowiedzi na „Jak dodać inne dane kontaktowe dla użytkownika w WordPressie?”
Czy zamiast konkretnego ID użytkownika można wpisać 'user_nicename’?
Nie – ta funkcja przyjmuje tylko ID jako identyfikator użytkownika…
Zawsze możesz wyciągnąć id za pomocą get_user_by();
http://codex.wordpress.org/Function_Reference/get_user_by
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.