Chwilę temu Łukasz Więcek na Facebooku zadał pytanie:
…chciałem oczyścić ustawienia profili z niepotrzebnych pól. Z dodaniem nowych pól najmniejszych problemów nie ma, ale czy ma ktoś z Was pomysł, jak usunąć pola, które są domyślnie wyświetlane w ustawieniach profilu (AIM, Yahoo IM, itp)?
W ramach wdzięczności za ilość pozostawionych przez Łukasza komentarzy na dev.wpzlecenia postanowiłem udzielić na tutejszych łamach szybkiej porady :)
Faktycznie, WordPress domyślnie prosi użytkownika o podanie kilku form kontaktu (nie jest to obowiązkowe):
W Polskich warunkach mało kto używa AIM czy Yahoo IM. W jaki sposób można usunąć te pola ze strony profilu użytkownika?
Musimy odwołać się tutaj do filtra user_contactmethods. Na wejściu otrzymuje on tablicę z domyślnymi polami, którą możemy przetworzyć i na koniec powinniśmy zwrócić. Najczęściej użytkownicy dodają do niej kolejne elementy, jednak nic nie stoi na przeszkodzie by zadziałać odwrotnie i tablicę tę skrócić.
Zobaczmy jak będzie wyglądał kod usuwający AIM oraz Yahoo:
function usun_aim_yim( $metody ) { unset($metody['aim']); unset($metody['yim']); return $metody; } add_filter('user_contactmethods','usun_aim_yim',10,1);
I to wszystko.
Jeśli ktoś chce dokładniej się przyjrzeć jakie metody kontaktu są domyślnie rejestrowane, odsyłam do pliku wp-includes/user.php, a wnim do funkcji _wp_get_user_contactmethods.
Komentarze
6 odpowiedzi na „Jak usunąć niektóre pola z profilu użytkownika?”
Dzięki wielkie, drogi Kolego! Chociaż jeszcze z cztery godzinki i sam bym do tego doszedł ;) Ech – w filtrach WP mam zdecydowane tyły. Jakoś zawsze do szczęścia wystarczało mi add_action, więc filtrów nawet nie liznąłem ;)
ze mna tez nie jest tak, zeznam filtry na pamiec :) po prostu przypomnialo mi sie, ze gdzies juz to chyba widzialem. i udalo sie znalezc funkcje w users.php i wyjasnienie przyszlo samo
Ja mam dość proste pytanie, przy czym domyślam się odpowiedzi. Ale nie jestem pewien, a inni mogę tego nie wiedzieć. Gdzie ten kod należy wkleić :D
Obstawiam z funcion.php.
tak, tam sie wkleja wszelkie kody, jesli ktos nie napisal gdzie dokladnie :)
(tak prawde mowiac to zadziala po wklejeniu do niemal kazdego pliku wordpressa, ale z roznych powodow to wlasnie functions.php jest najlepszy)
Myślę, że teraz powinieneś napisać nowy wpis, o tym jak dodać własne pola w tej części :)
tak samo, tylko odwrotnie :) nie usuwamy, a dodajemy elementy do tablicy. wszystko widac w podlinkowanym kodzie zrodla wordpress