Как в buddypress в общем списке пользователей выводить не только ФИО, но и другие поля профиля

общий список пользователей может выводится как стандартным шаблоном бадипресс так и быль шаблоном в вашей теме. У вас как реализовано?

В любом случае можете попробовать в файл functions.php вашей темы добавить:


add_action('bp_directory_members_item', function(){
echo '111111';
});
// или
add_action('bp_directory_members_actions', function(){
// global $members_template;
// var_dump($members_template->member);
echo '222222';
});
// данные о пользователе попробуйте получить так
global $members_template;
var_dump($members_template->member);

Добавить Комментарий

На всякий случай, сразу каюсь — я почти ничего не понимаю в программировании.
1. Как у меня реализовано — подозреваю, что через бадипресс ( вот строка кода html с главной страницы: http://prntscr.com/bolgi4)
2. при добавлении вашего кода в  functions.php темы — он выдает у каждого пользователя «111111» и «222222» и более ничего.
3. Тоже самое происходит при добавлении вашего кода в bp-members-functions.php в директории buddypress

ну все верно, раз выводится 1111 или 2222 — то значит мы подключились в нужное место, осталось вывести нужные данные. Вы какие поля хотите вывести(от бадипресс или вордпресовские)?

в 04.07.2016.

Я бы хотела от бадипресс вывести, но у меня стоит галка в синхронизации (http://prntscr.com/boprr8)
На самом деле у меня и это получилось:

// данные о пользователе попробуйте получить так
global $members_template;
var_dump($members_template->member);
(я просто ошиблась в синтаксисе)
Но вывелось вот что: (http://prntscr.com/bopsyo), наверно имя переменной не такое как мне мне надо..?
в 04.07.2016.

На самом деле это объект с элементами к которым можно обращаться, например:

 add_action('bp_directory_members_actions', function() {
 global $members_template;
 echo 'Email: ' . $members_template->member->user_email;
 });
 

 

в 05.07.2016.

Спасибо) имейл выводит, но вопрос все еще остался:
а как узнать название элемента (к которому я хочу обратиться) под которым сохраняются данные, когда пользователь заполняет свой профиль?
иными словами, как мне понять что писать в эту строчку . $members_template->member->user_email; , если я хочу вывести любое другое произвольное поле?

в 05.07.2016.

На самом деле, все было еще в первом ответе.


global $members_template;
var_dump($members_template->member);

Вы присылали картинку где выводится много символов. Вот если присмотреться там есть [‘user_email’] — и мы обращаемся:

$members_template->member->user_email

Для того что бы данный код выглядел более наглядно, нажмите на сайте правой кнопкой мыши и выбирите «Исходный код страницы» — там эти объекты будут выглядеть более наглядно.

в 06.07.2016.
Добавить Комментарий

К сожалению, среди тех данных нет нужных мне. Вот как это выглядит в исходном коде:
http://prntscr.com/bpiw2d
вот, о каком профиле идет речь:
http://repetitor4you.ru/%D0%BD%D0%BE%D0%B2%D0%B0%D1%8F/mishanya/
и мне нужно вывести, например, тип экзамена, или, скажем предмет..

так а где эти данные вы храните?

в 06.07.2016.

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

в 06.07.2016.

В вордпресс по умолчанию нет полей: «тип экзамена», «предмет». Создать их есть куча способов, какой используете вы я не могу знать.

в 08.07.2016.

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

в 08.07.2016.

тогда так:

add_action('bp_directory_members_actions', function() {

global $members_template;

$XXX = bp_get_profile_field_data( 'field=XXX&user_id=' . $members_template->member->ID );

echo $XXX;

});

В строке «field=XXX&user_id», вам нужно заменить XXX на название вашего поля, то которое вы указывали при создании.

в 09.07.2016.

Да, спасибо, работает, один момент — как записывать названия полей, состоящих из двух и более слов?

в 12.07.2016.

Как вы их назвали так и записывать.

в 12.07.2016.

Тогда ошибка 500 на сайте

в 12.07.2016.

как вариант назвать заново поля на латинице без пробелов(или заменяя «_»)

или попробовать пробелы заменить на знак + или %20

в 13.07.2016.

Не помогло, в итоге поменяла название одного из полей на однословное, состоящее из букв латинского алфавита, вывел вот что:
http://prntscr.com/bup1f2
Но тем не менее, если я прошу вывести ФИО — он выводит с помощью этого кода:
http://prntscr.com/bup2l6

в 19.07.2016.

Сделайте var_dump($XXX); когда у вас появляется надпись array.

Если брали код что я написал что после echo $XXX;

Что бы посмотреть что находится в массиве, который не выводится(надпись array).

 

И еще пришли код того как вы выводите(оба варианта, рабочий и нет). И сделайте скриншот в админке ваших полей.

в 19.07.2016.

Прошу прощения за долгий ответ, слабый тип нервной деятельности, рыдала.
Значит, вот:
1. var_dump($XXX); — результат такой: http://prntscr.com/c423rq

Т.е. он вывел что мне нужно, только не красиво.

2. скрин кода когда он вывел этот результат (напомню, что поле «Тип экзамена» я переименовала в Ekz): http://prntscr.com/c424rv
3.  код с латинским названием поля, где в качестве пробела знак «_» — работает точно также как и в п.1
4. код с названием поля в русском варианте не работает.

5. а вот скрин полей в админке (не всех): http://prntscr.com/c427i4

в 10.08.2016.

Рыдать не нужно.

Попробуйте так:

 add_action('bp_directory_members_actions', function() {
global $members_template;
$Ekz = bp_get_profile_field_data( 'field=Ekz&user_id=' . $members_template->member->ID );
if(!empty($Ekz)){
 foreach ($Ekz as $Ekz_value) {
 echo '<p>'.$Ekz_value.'</p>';
 }
 }
});
 

$Ekz — у вас это массив значений, который нужно обойти циклом foreach(перебрать его элементы)

в 11.08.2016.

Да, спасибо, это работает)
жаль только что переменная и поле анкеты одинаково называются( не могу же я в полях для регистрации преподавателей оставить латинские буквы, может быть есть какое то решение что бы поле анкеты было русским, а переменная куда это все записывается — латинской?

в 11.08.2016.

Не понял задачи. Не знаю что за анкеты и что у вас за регистрация. Можно подробнее.

в 14.08.2016.

Анкета регистрации — стандартная из плагина бадипресс для вордпресс. В ней я задала названия полей на русском языке (http://prntscr.com/c8ja5e), но для того, чтобы вызвать  какую то переменную с помощью вашего кода, я должна в админке ее написать латинскими буквами, и после этого, это поле на сайте так и отображается, что не удобно для посетителя(

в 21.08.2016.
Добавить Комментарий

Ваш ответ

Размещая свой ответ, вы соглашаетесь с правилами сайта.