В текущей версии WordPress на момент написания этого поста в блоке «Контакты» есть всего два поля – «Email» и «Сайт», поэтому в этом уроке я покажу вам, как добавить туда свои собственные поля.
Добавление полей в блок «Контакты»
Вообще у меня на сайте есть полноценный урок по добавлению полей в профили пользователя.
Но так как страницу вконтакте или скайп (а также номер сотового) в профиле нужно отображать под вкладкой «Контакты» а не под «Дополнительная информация» то лучше всего воспользоваться хуком user_contactmethods
.
/** * @snippet Добавление полей в блок "Контакты" в профилях пользователей * @author Миша Рудрастых * @url https://misha.agency/wordpress/addtitional-methods-user-profiles.html */ add_filter( 'user_contactmethods', 'true_add_contacts', 25 ); function true_add_contacts( $contactmethods ) { $contactmethods[ 'vk' ] = 'Ваша страница вконтакте'; $contactmethods[ 'mobile' ] = 'Номер сотового'; $contactmethods[ 'skype' ] = 'Скайп'; return $contactmethods; }
Не знаете, куда вставлять код?
В результате чего у вас получится:
Для того, чтобы получить значения полей, вы можете воспользоваться функциями get_the_author_meta() и get_user_meta(). Например так:
$user_skype = get_the_author_meta( 'skype', $user_id ); $user_skype = get_user_meta( $user_id, 'skype', true );
Удаление стандартных полей из блока «Контакты» (старые версии WordPress)
И сразу же бросаются в глаза стандартные вордпрессовские поля, я имею ввиду AIM, Yahoo IM, Jabber / Google Talk. Но в свежих версиях WordPress этих полей и так нет!
Почему-то мне кажется, что мало кто их использует (именно поэтому их и удалили в последующих версиях WordPress), а теперь избавимся от них:
add_filter('user_contactmethods', 'true_hide_contacts', 10, 1); function true_hide_contacts( $contactmethods ) { unset( $contactmethods[ 'aim' ] ); unset( $contactmethods[ 'jabber' ] ); unset( $contactmethods[ 'yim' ] ); return $contactmethods; }