Jak usunąć niektóre pola z profilu użytkownika?

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.


Opublikowano

w

przez

Komentarze

6 odpowiedzi na „Jak usunąć niektóre pola z profilu użytkownika?”

  1. Awatar Łukasz Więcek - myDIY.pl

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

    1. Awatar Konrad Karpieszuk

      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

  2. Awatar SpeX

    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.

    1. Awatar Konrad Karpieszuk

      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)

  3. Awatar Jakub Milczarek

    Myślę, że teraz powinieneś napisać nowy wpis, o tym jak dodać własne pola w tej części :)

    1. Awatar Konrad Karpieszuk

      tak samo, tylko odwrotnie :) nie usuwamy, a dodajemy elementy do tablicy. wszystko widac w podlinkowanym kodzie zrodla wordpress