Intereting Posts
URL-адрес реферера с jQuery или Javascript – проблема с URL-адресом кэша и реферера тема непрерывного развертывания от bitbucket до windows azure Могу ли я использовать компоненты Symfony в плагине, который я хочу отправить в репозиторий плагинов WordPress? Результат пейджинга функции get_posts Как отобразить выбранную категорию get_categories? Как заблокировать всплывающие объявления в wordpress iframe? Должна ли быть косая черта в постоянной ссылке? Заказ по Пользовательской дата поля не признан Как сделать форму переднего конца принимать только определенные значения Виджеты в цикле, если они активны Предварительный просмотр в iframe без сохранения сообщения Активация нового зарегистрированного сайта выходит из строя на многоузловом проверьте наличие короткого кода в сообщениях / страницах И виджетах И файлы шаблонов Перемещение WordPress на новый сервер: сообщений не найдено Добавить пользовательское поле в поле комментариев ПОСЛЕ текстовой области НО ПЕРЕД отправкой кнопки

Получить строку из массива и цикла запуска

Я использую этот код для получения всех членов групп, в которые входит зарегистрированный пользователь.

Вопросов:

$ Group_id – это строка из массива. Моя проблема заключается в том, что в массиве имеется более одного значения $ / group_id. В этом примере group_id = 5 и group_id = 6 Итак, как я могу изменить код на цикл (например, с foreach), чтобы перечислить всех членов всего $ value / group_id, в этом примере group_id = 5 и group_id = 6?

Спасибо!

<?php $user_id = bp_loggedin_user_id(); $groups = BP_Groups_Member::get_group_ids( $user_id ); foreach ($groups as $type => $properties) { foreach ($properties as $property => $value) { $group_id = 'group_id='. ' ' .$value. ' ' .'&exclude_admins_mods=false'; } } if ( bp_group_has_members($group_id) ) : ?> <div id="member-count" class="pag-count"> <?php bp_group_member_pagination_count() ?> </div> <div id="member-pagination" class="pagination-links"> <?php bp_group_member_pagination() ?> </div> <ul id="member-list" class="item-list"> <?php while ( bp_group_members() ) : bp_group_the_member(); ?> <li> <!-- Example template tags you can use --> <?php bp_group_member_avatar() ?> <?php bp_group_member_link() ?> <?php bp_group_member_joined_since() ?> </li> <?php endwhile; ?> </ul> <?php endif;?> 

Интересно! Глядя на bp_group_has_members, он позволяет передавать только одну группу, используя параметр group_id, когда моя первая мысль заключалась в том, что она сможет передать массив групп. используя ваш метод, вам нужно будет запустить цикл несколько раз, чтобы получить нужные результаты. Я бы предложил сначала получить идентификатор группы зарегистрированных пользователей, как вы это делали выше:

 $user_id = bp_loggedin_user_id(); $groups = BP_Groups_Member::get_group_ids( $user_id ); $groups = $groups['groups']; 

или с помощью прямого SQL-оператора, который, по моему мнению, будет быстрее:

 $groups = $wpdb->get_col($wpdb->prepare("SELECT group_id FROM {$wpdb->prefix}bp_groups_members WHERE user_id = %d",$user_id),0); 

Затем получение всех видов использования относится к каждой из групп с использованием прямого оператора SQL:

 global $wpdb; $allUsers = $wpdb->get_col($wpdb->prepare("SELECT DISTINCT user_id FROM {$wpdb->prefix}bp_groups_members WHERE group_id IN (".implode(', ', array_fill(0, count($groups), '%s')).")",$groups),0); 

и отображать результаты, используя обычный цикл bp_has_members (), включая массив идентификатора пользователей, который мы получили из приведенного выше оператора SQL:

 <?php if ( bp_has_members( array( 'include' => $allUsers ) ) ) : ?> <?php while ( bp_members() ) : bp_the_member(); ?> <li> user info.... </li> <?php endwhile; ?> </ul> <?php endif; ?> 

Вы можете посмотреть здесь, чтобы увидеть цикл bp_has_memebrs и получить все необходимые функции, чтобы отобразить нужную вам информацию.