Дополнительные поля в профиле пользователей
Существует множество плагинов, которые расширяют возможности стандартной регистрации в блоге на WordPress. Однако, не всегда стоит пользоваться дополнительным плагином...
Понравился пост? Подпишись на обновления по RSS или Twitter !
#1,
Спасибо. Полезная инфа. А вот интересно, можно ли в вордпрессе, сначала вставить в профиль строку "Город", а после этого отправлять письма с фильтром по городу? Ну например только тем, кто с Волгограда.
#2,
теоретически это не сложно. добавляем нужное поле в профиль. потом берем любой плагин рассылки писем зарегистрированным юзерам, ищем там функцию непосредственно отправляющую письма и вставляем условие
#3,
Спасибо за такой полезный сайт. Сделано профессионально и от души. Нашел много полезного по плагинам. Буду читать, вникать и применять.
#4,
Спасибо вам огромное!!!! В очередной раз спасли =) всего вам доброго ;)
#5,
Спасибо за статью. Есть один вопрос - эти функции позволяют вставлять дополнительные поля только в профиль (после регистрации и авторизации), или также и при начальной регистрации пользователя (http://www.wordpressplugins.ru/wp-register.php)?
#6,
нет, только в профиле. при регистрации надо юзать другие плагины.
#7,
Ага, так я и подозревал. Пока как раз и приходится использовать Cimy User Extra Fields для этих целей. Спасибо!
#8,
Это изменит дополнительные поля только для комментариев или для всех пользователей?
#9,
Для регистрации можно использовать ненапряжный плагин, такой как register plus - как работает можешь посмотреть нажав на мой ник в комментарии
#10,
Спасибо за наводку, обязательно попробую :)
#11,
Блин то что искал. Щас навтыкаю полей. Автор спасибо.
#12,
Спасибо автору. Код реальный, работает.
А можно ли, чтобы код в поле, пользователь мог вставить только один раз, ну как в примере с именем (его нельзя изменить)
#13,
Автор, используемые в статье функции устарели, отредактируйте статью, чтобы она была актуальной. Но общий принцип добавления понял, спасибо за статью.
Обновление значения поля
Вывод значения поля
А ещё чтобы редактировать поле мог только админ, можно в функцию show_my_profile_fields() добавить условие:
#14,
Спасибо за статью!
Работает! Но только для авторов статей и постов.
А возможно ли добавить информацию только об авторе комментария?
Заранее благодарен за ответ!
#15,
автор коммента может быть не зарегистрирован, так что откуда брать эти самые поля?
конечно, можно заставить комментатора заполнять нужные поля при отправке комментария, а потом выводить значения этих полей при выводе коммента. только вот лишние поля в форме комментария будут отпугивать людей, оно вам надо?
#16,
Спасибо за скорый ответ! =)
Надо!
У меня комментировать могут только зарегистрированные пользователи.
Такова специфика сайта.
Так что поля у комментаторов есть.
Только вот как их вывести в комментариях?
#17,
честно - не пойму. если комментировать могут только зареганные юзеры, то вам целиком подойдет код, изложенный в статье. ну поменяете там поля Twitter на нужные вам и все. ну разве что выводить эти поля надо будет не в single.php, а где-нибудь в comments.php, в зависимости от того, где и как у вас в шаблоне выводятся комменты.
#18,
В single.php, page.php... выводятся, но с указанием данных автора статьи.
А в comments.php стоит команда вывода списка комментариев.
Ставлю код перед или после неё, выводятся данные об авторе статьи, а не комментария.
Не пойму куда ещё можно вставить код, чтобы заработало у авторов комментариев.
#19,
а конкретнее? привести ее тут можете?
#20,
Вот:
Думаю нужно в author.php прописать, но в моей теме нет таокй страницы. Скопировал её из стандартной темы, прописал код, но не работает.
Похоже мой wordpress её не видит... не знаю как и где прописать скопированную author.php, чтоб увидел.
#21,
прописывать надо в функции art_comment, которая, по всей видимости, находится у вас в шаблоне в файле functions.php
#22,
Так и есть! Получилось! =)
Выручили меня!
БОЛЬШОЕ ВАМ СПАСИБО!
#23,
Вопрос =)
Всё работает, но хотелось бы ещё чтобы эти поля выводились при регистрации и там пользователь их заполнял.
Как это сделать?
#24,
ну это гуглится легко, например вот это руководство. в коде, конечно, надо менять значения на свои, но и так думаю будет все понятно.
#25,
Спасибо! Буду искать ответ дальше.
#26,
А можете пожалуйста помочь? Сделать такое поле для комментариев, CForms - не вариант! К примеру сделать поле "Номер покупки" и рядом с именем автора коммента, выводился данный номер!)
#27,
вывести то такое поле проблем никаких - но судя по контексту, заполнять его должны работники магазина, так ведь?
#28,
нет не работники магазина, это как страничка с отзывами, клиент пишет отзыв оставляя свой номер!)
#29,
ну руководств полно по этому поводу. но вам проще воспользоваться плагином Custom Comment Fields или похожими.
#30,
Пробовал я данный метод, не работает он как надо, хочется сделать через functions.php
#31,
смотрите руководства, я подробнее описать не могу. комментарий может вводится в форме, которая прописана в comments.php, он может вводится в форме, которую запихнули в functions.php или форма комментариев вообще может быть заменена новой функцией wordpress (начиная с версии 3.0) comment_form - для каждого из этих вариантов код должен быть разным. потому я и говорю, что вам проще воспользоваться плагином.
#32,
Да я вот пытаюсь, но так ниче и не выходит, у меня все пропиано в comments.php, и в function - прописан вывод этих комментариев, ставлю плагин, ковыряюсь, ковыряюсь и толку ноль:(
#33,
ссылку на ваш шаблончик дайте, посмотрю.
#34,
а как добавить эти поля , чтобы пользователь заполнял их при регистрации
#35,
да решений много, вот, например, одно из них.
#36,
А почему добавленые поля не отображаются в проиле в новой версии 3.4.1 по адресу /wp-admin/profile.php?
(Поля добавились только в базу, а мне нужно увидеть их в стандартном профиле пользователя)
#37,
ну вот, вы заставили меня проверять :( все там добавляется в 3.4.1, внимательней код вставляйте.
#38,
Я что то так и не понял в какой именно файл functions етот код вставлять. Если в шаблонный, то там вообще такого нет. Если который в папке wp-includes или в wp-admin
#39,
Или даже я по другому вопрос задам у меня есть уже несколько полей гугле+ и твитер, а как убрать AIM и Yahoo где это находится?
#40,
строго в файл, который находится в папке шаблона.
в тот же functions.php добавить код:
#41,
Подскажите пожалуйста, можно ли сделать так, чтобы в доп полях было поле для аватарки ? Идея такова, чтобы в поле ввести путь до аватарки и она отобразилась в комментариях.
Сейчас использую Simple Local Avatars, но заметил, что плагин делает слишком много лишних запросов в БД. Хочу от этого избавиться.
Спасибо.
#42,
где вы там лишние запросы то заметили?
да и какая разница сколько запросов, если они не влияют на скорость загрузки?
а про вашу идею - путь до аватарки куда? плагин загружает аватарки на сайт, доп. полем вы это не сделаете.
#43,
В самом посте:
5.93 MB | MySQL:60 | 1.057 sec - плагин включен
5.62 MB | MySQL:32 | 1.052 sec - плагин выключен
и это при том, что в посте 28 комментариев. Получается, что на каждый коммент по 1 запросу. Если бы 1-2 запроса, я бы не рыпался. Но по 1 запросу на каждый комментарий - имхо не лучшее решение.
Аватарки ручками залью к себе на хостинг и укажу путь к ним. Хочу задать аватарки нескольким пользователям, граватар они не используют, да и для дальнейших манипуляций, которые я запланировал - граватар не подойдет.
#44,
слушайте, ну а что вы на количество запросов то так молитесь? 5 тысячных секунды разницы - зачем что либо менять? я бы еще понял, если запрос был связан с выборкой по всей базе данных, что вызывало бы тормоза - но малюсенький и точный запрос запрос - зачем от него избавляться то?
это уже напоминает оптимизацию ради самой оптимизации. совершенно бессмысленная, но зато оптимизация.
#45,
Да в том-то и дело, что из этих 28 комментариев примерно половина - мои ответы. А следовательно, зачем делать каждый раз запрос, если данные уже получены и так ??? Вы же не спрашиваете у одного и того же собеседника каждый раз, как его зовут, если он уже представился. Тут тоже самое.
Возможно, но все мы знаем, что из секунд складываются минуты, из Кб - Мб. При больших нагрузках прирост в скорости будет заметен.
Добавил поле по примеру выше, указал полный путь до аватарки. Осталось понять, как теперь ее вывести в комментарии. Что-то мне подсказывает, что contactmethods - это не совсем то, что мне нужно.
За вывод аватарок у меня отвечает следующая строчка:
Буду очень признателен за помощь в решении данного вопроса.
#46,
да и взяли бы пример из кода статьи, что-то типа:
ну по хорошему еще бы проверку сделать на то, чтобы 'ava' не была с пустым значением, но это уже детали.
#47,
Я об этом думал, но так и не понял, как это срастить с моим кодом.
Сейчас принцип работы такое, если есть граватар - он выводится, если нет - выводится картинка по умолчанию, а для зарегистрированных пользователей выводится аватарка через плагин Simple Local Avatars. Но при использовани указанного кода выше граватар и авы по умолчанию работать не будут. Или я не совсем правильно понял, как это и куда вставлять ?
Пустой она не будет. Зарегистрированных пользователей не много, регистрация приватная, поэтому заполнить это поле труда не составит.
#48,
я так и не понял, что вам в итоге надо получить :) и граватар и локальный аватар, да еще и указанный через поле аватар?
прежде, чем я смогу вам что-то подсказать - скажите - каким образом у вас выводятся комментарии? если через функцию comment_form, то не выйдет у вас ничего. эту функцию надо разбивать на кастомную, чтобы иметь возможность править вызов граватара. до wordpress 2.7 этой функции не было и комментарии выводились вручную отдельными функциями в comments.php - сейчас в шаблонах почти все поголовно используют вызов comment_form, которая сама выводит стандартный вид комментариев - править его вывод вы не можете, включая и вызов граватаров.
#49,
Именно. Извиняюсь за путаницу )))
Комментарии выводятся кастомной функцией:
#50,
ну можно попробовать что-нибудь придумать. добавьте в functions.php код:
а в этой вашей функции mytheme_comment вызов аватара будет таким:
то есть если граватар существует - выводится именно он. если же его не существует - то выводится аватарка, указанное в поле профиля.
извините, но локальные аватары плагина в этой схеме никак не предусмотрены. да и вообще - это все бессмысленно с точки зрения увеличения производительности блога. одна только проверка на существование граватара займет больше времени, чем 30 запросов к базе данных плагина Simple Local Avatars.
#51,
Супер. Спасибо большое. Сегодня вечером попробую поставить и потестирую с другими плагинами аватарок, о результатах обязательно отпишусь.
#52,
Протестировал. function validate_gravatar видимо выдает ошибку, т.к. открывается белая страница.
#53,
нет там ошибки, проверяйте как вставляли код и не разбили ли вы нужные функции и тд и тп. только что проверил на тестовом сервере - функция прекрасно работает и отлично проверяет существование граватара.
а белый экран может означать что угодно - от неправильной кодировки файла до отсутствие знака ';' в конце какой-нибудь строки кода - тут точнее могут сказать только логи ошибок сервера.
#54,
если кому интересно, то вот способ добавления полей гораздо проще указанного в статье (устарел этот способ уже).
#55,
хочу добавить новых пользователей на сайт 1000чел(традиционной регистраций не будет)сам создам аккаунты и раздам логин и пароль и емайл разумеется.Так хочу через встроенный редактор добавить пользователей,но там не хватает еще полей,как добавить поля?
Подскажите как или плагин
#56,
На самом деле удобная фишка. Но тут есть критические косяки. Ну мне так кажется. В поле можно вставить код скрипта, банально проверка вывода alert и при заходе на страницу где выводится инфа с этого поля, скрипт срабатывает. Хотя казалось бы прописано esc_attr, но фиг там. Я в пхп полный нуб, но час гугления, навел на решение.
Все кроется вот тут
Надо так
Вся фишка в sanitize_text_field() которой надо обложить вовсе не input, хотя может они в паре как-то работают.
Тогда он удаляет любой шлак введенный в эти поля. Что скрипты, что пхп. И оставляет поле пустым и на странице вывода тоже поле не показывается. Все как положено.
Еще update_usermeta заменил на update_user_meta я так понял первое устарело, но работало, что странно. Ну как я уже говорил, в пхп нуб. Просто для меня это самое удобное решение в плане доп полей и вывода инфы в профиле точнее на странице author.php.
У кого еще какие мысли есть по этому поводу? Что тут можно еще улучшить. Вещь годная реально.
#57,
Те правки, которые я внес в метод описанный в вашей статье, делает этот мод гораздо круче того, что по ссылке )
Хотя тот тоже хорош, но я не разобрался как разместить эти поля не в разделе контакты, а ниже, как в вашем случае, в конце так сказать. Плюс тут под самим полем ввода можно свой текст указать, где людям показать типа пример, что можно написать туда.