Показать участников группы снаружи / группы / участников / страницы - PullRequest
0 голосов
/ 29 апреля 2020

Мне трудно показывать простой список членов группы в доме группы. Код работает на странице / group / members /. Но это не работает на дому группы.

В документации сказано (https://codex.buddypress.org/developer/loops-reference/the-group-members-loop-bp_group_has_members/):

group_id обязательный Идентификатор группы, чтобы выбрать членов для. Требуется, когда: вне обычного URL-адреса групп BuddyPress (/ group / i-love-bp / members /) или не вложен в bp_has_groups () l oop.

Так я и сделал , но все равно не повезло. Есть идеи?

Это мой код:

<?php
    $args = array(
        'group_id' => bp_get_group_id()
    );

    if ( bp_group_has_members( $args ) ) : ?>

        <ul id="member-list" class="item-list">
            <?php while ( bp_group_members() ) : bp_group_the_member(); ?>

                <li>
                    <span class="avatar">
                        <a href="<?php bp_group_member_domain(); ?>">
                            <?php bp_group_member_avatar_thumb(); ?>
                        </a>
                    </span>
                    <span class="name">
                        <a href="<?php bp_group_member_domain(); ?>">
                            <h4><?php bp_group_member_name(); ?></h4>
                        </a>
                    </span>
                    <span class="actions">
                        <a class="button small" href="<?php bp_group_member_domain(); ?>">
                            <?php esc_html_e('View profile', 'mvp'); ?>
                        </a>
                    </span>

                </li>

            <?php endwhile; ?>

        </ul>

    <?php else: ?>

        <div id="message" class="info">
            <p><?php _e( 'No members were found.', 'buddypress' ); ?></p>
        </div>

    <?php endif; ?>

1 Ответ

0 голосов
/ 29 апреля 2020

О человек, разбил мне голову об этом в течение последних дней. Но нашли решение, конечно же ответ был тут же. Я забыл исключить админов и моды в l oop. Не понимаю, почему они будут исключены в первую очередь.

Существует полный код, включая получение полей xProfile для всех, кому это интересно:

<?php
    $args = array(
        'group_id' => bp_get_group_id(),
        'exclude_admins_mods' => false
    );

    if ( bp_group_has_members( $args ) ) : ?>
        <ul id="member-list" class="item-list">
            <?php while ( bp_group_members() ) : bp_group_the_member(); ?>

                <?php $user_id = bp_get_group_member_id(); ?>
                <li>
                    <span class="avatar">
                        <a href="<?php bp_group_member_domain(); ?>">
                            <?php bp_group_member_avatar_thumb(); ?>
                        </a>
                    </span>
                    <span class="name">
                        <a href="<?php bp_group_member_domain(); ?>">
                            <h4><?php bp_group_member_name(); ?></h4>
                        </a>
                    </span>
                    <span class="platforms">
                        <?php $user_psn_handle = bp_get_profile_field_data('field=PSN handle&user_id='.$user_id); ?>
                        <?php if($user_psn_handle): ?>
                            <i class="icon saturated standalone platform psn"></i>
                        <?php endif; ?>

                        <?php $user_xbox_handle = bp_get_profile_field_data('field=XBOX handle&user_id='.$user_id); ?>
                        <?php if($user_xbox_handle): ?>
                            <i class="icon saturated standalone platform xbox"></i>
                        <?php endif; ?>

                    </span>
                    <span class="actions">
                        <a class="button small" href="<?php bp_group_member_domain(); ?>">
                            <?php esc_html_e('View profile', 'mvp'); ?>
                        </a>
                    </span>

                </li>

            <?php endwhile; ?>

        </ul>

    <?php else: ?>

        <div id="message" class="info">
            <p><?php _e( 'No members were found.', 'buddypress' ); ?></p>
        </div>

    <?php endif; ?>
    ```
...