Как добавить дополнительные контактные данные в профиль пользователя

Как добавить дополнительные контактные данные в профиль пользователя | n-wp.ru Настройки
👍 Научим создавать сайты на WordPress бесплатно за 19 уроков. Подробнее →

Если вы зайдете в профиль пользователя и посмотрите на контактные данные, то увидите примерно такую картину:

Как добавить дополнительные контактные данные в профиль пользователя

А теперь скажите, много вы знаете пользователей рунета, у которых есть AIM и Yahoo IM? Если между AIM и ICQ еще можно с натяжкой поставить знак равенства, то пользователей Yahoo IM я знаю только одного, но он из Италии. Так что эти контактные данные совершенно бесполезны в наших широтах. А вот контактного поля для Twitter и Facebook, которые так популярны не только у нас, в профиле нет. Давайте исправим это.

Для того, чтобы добавить дополнительные поля в контактной информации пользователя, создадим несколько дополнительных фильтров. Откройте файл functions.php и вставьте в него такой код:

// дополнительные контакты начало

function add_twitter_contactmethod( $contactmethods ) {
  // Добавляем Twitter
  $contactmethods['twitter'] = 'Twitter (ваш ник)';
  // Добавляем Facebook
  $contactmethods['facebook'] = 'Facebook (ваш ник)';
	
  // Удаляем Yahoo IM
  unset($contactmethods['yim']);
  // Удаляем AIM
  unset($contactmethods['aim']);
  // Удаляем Jabber
  unset($contactmethods['jabber']);
 	
  return $contactmethods;
}
add_filter('user_contactmethods','add_twitter_contactmethod',10,1);

// дополнительные контакты конец

Благодаря тому, что WordPress сейчас умеет автоматически преобразовывать логины из Facebook и Twitter, мы с помощью этого кода вставили поля для ввода этих логинов в контактные данные пользователя. Так же мы убрали неиспользуемые поля IM. Теперь контактные данные выглядят вот так:
Как добавить дополнительные контактные данные в профиль пользователя

Вы можете подкорректировать этот код с учетом своих предпочтений.

Создай свой первый сайт на WordPress

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

Оцените автора
Добавить комментарий

  1. alexpts

    Делал плагин, которые позволяет делать почти тоже самое, только все в админки — вообщем для простого пользователя — http://my-wordpress.ru/plugin/extend-profile-pts-wopdpress.php

    Советую посмотреть в сторону плагина Extend Profile PTS, поможет сократить много времени. Да и код между шаблонами не придется таскать каждый раз.

    Ответить
    1. Спасибо за плагин!
      Только жаль, что он не умеет пока что добавлять произвольные контактные поля в настройках — все равно приходится вручную редактировать, и смысл его использования пропадает.

      Ответить
      1. alexpts

        Не совсем понял про произвольные поля.

        Админ в настройках 1 раз придумывает новые произвольные поля, а пользователи в своем профайле их заполняют каждый сам.

        Ответить
  2. Erik

    спасибо за код!!! все работает!!!
    добавил твиттер, фейсбук и аську!!! =)))

    Ответить
  3. Mishelin

    Я извиняюсь, а есть ли код, чтобы пользователь мог заполнить некоторые поля только один раз, как в примере с именем пользователя — Имя пользователя изменить нельзя, или только администратором.
    Просто хотелось бы, чтобы пользователи не баловались со своими именами, фамилиями и твиттерами.

    Ответить
    1. Думаю, что то, что вы предложили, не является правильным. Твитер, имя и фамилия — это личные данные, которые человек вправе указывать, менять и удалять по своему усмотрению. Уникальное же имя пользователя — это всего лишь идентификатор учетной записи в базе данных. Поэтому никто и не реализует неудаляемые данные в профиле, хотя в принципе сделать это можно. Да и какая вам разница, что человек меняет свой Твиттер — поставьте nofollow на ссылки и не заморачивайтесь, пусть хоть сто раз на дню меняет.

      Ответить
  4. Mishelin

    А вообще решаема ли данная задача без плагина

    Ответить
  5. expojoe

    Tiaurus, а каким образом имя пользователя над оставленным им комментарием, сделать ссылкой ведущей на страницу данного пользователя с его данными? Так как это сделано у вас на сайте. В моей теме имена пользователей выводятся просто в виде текста.

    Ответить
    1. tiaurus автор

      Вы хотите, чтобы при клике на имя комментатора открывалась отдельная страница с архивом его постов? Тогда вам нужно:
      — сделать обязательной регистрацию для комментирования
      — отредактировать страницу архива постов автора
      — отредактировать форму комментирования (comments.php), заменив в ней ссылку на сайт комментатора ссылкой на архив постов зарегистрированного пользователя
      Как видите, в двух словах описать не получиться. Но алгоритм я вам набросал — действуйте пошагово.

      Ответить
      1. expojoe

        Мне нужно немного проще.
        Пользователи уже регистрируются на сайте, но они не публикуют посты, только оставляют комментарии. При этом у них есть страница профиля (отображается плагином Theme My Login), на странице профиля пользователи заполняют свои данные: имя, контакты, о себе и т.п.
        Так вот, если вордпресс дает возможность эти данные оставлять, значит должна быть возможность их показывать, не только администратору, но и остальным пользователям сайта. Подскажите, пожалуйста, что для этого нужно сделать, какой код прописать в comments.php и т.д.?

        Ответить