Если вы зайдете в профиль пользователя и посмотрите на контактные данные, то увидите примерно такую картину:
А теперь скажите, много вы знаете пользователей рунета, у которых есть 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. Теперь контактные данные выглядят вот так:
Вы можете подкорректировать этот код с учетом своих предпочтений.
Делал плагин, которые позволяет делать почти тоже самое, только все в админки – вообщем для простого пользователя – http://my-wordpress.ru/plugin/extend-profile-pts-wopdpress.php
Советую посмотреть в сторону плагина Extend Profile PTS, поможет сократить много времени. Да и код между шаблонами не придется таскать каждый раз.
Спасибо за плагин!
Только жаль, что он не умеет пока что добавлять произвольные контактные поля в настройках – все равно приходится вручную редактировать, и смысл его использования пропадает.
Не совсем понял про произвольные поля.
Админ в настройках 1 раз придумывает новые произвольные поля, а пользователи в своем профайле их заполняют каждый сам.
спасибо за код!!! все работает!!!
добавил твиттер, фейсбук и аську!!! =)))
Я извиняюсь, а есть ли код, чтобы пользователь мог заполнить некоторые поля только один раз, как в примере с именем пользователя – Имя пользователя изменить нельзя, или только администратором.
Просто хотелось бы, чтобы пользователи не баловались со своими именами, фамилиями и твиттерами.
Думаю, что то, что вы предложили, не является правильным. Твитер, имя и фамилия – это личные данные, которые человек вправе указывать, менять и удалять по своему усмотрению. Уникальное же имя пользователя – это всего лишь идентификатор учетной записи в базе данных. Поэтому никто и не реализует неудаляемые данные в профиле, хотя в принципе сделать это можно. Да и какая вам разница, что человек меняет свой Твиттер – поставьте nofollow на ссылки и не заморачивайтесь, пусть хоть сто раз на дню меняет.
А вообще решаема ли данная задача без плагина
Tiaurus, а каким образом имя пользователя над оставленным им комментарием, сделать ссылкой ведущей на страницу данного пользователя с его данными? Так как это сделано у вас на сайте. В моей теме имена пользователей выводятся просто в виде текста.
Вы хотите, чтобы при клике на имя комментатора открывалась отдельная страница с архивом его постов? Тогда вам нужно:
– сделать обязательной регистрацию для комментирования
– отредактировать страницу архива постов автора
– отредактировать форму комментирования (comments.php), заменив в ней ссылку на сайт комментатора ссылкой на архив постов зарегистрированного пользователя
Как видите, в двух словах описать не получиться. Но алгоритм я вам набросал – действуйте пошагово.
Мне нужно немного проще.
Пользователи уже регистрируются на сайте, но они не публикуют посты, только оставляют комментарии. При этом у них есть страница профиля (отображается плагином Theme My Login), на странице профиля пользователи заполняют свои данные: имя, контакты, о себе и т.п.
Так вот, если вордпресс дает возможность эти данные оставлять, значит должна быть возможность их показывать, не только администратору, но и остальным пользователям сайта. Подскажите, пожалуйста, что для этого нужно сделать, какой код прописать в comments.php и т.д.?