我正在尝试将自定义配置文件字段添加到显示在Group>Single template上的成员配置文件中,但bp_member_profile_data
似乎什么都没还。
将其添加到members循环时效果良好。php:
<?php if ( bp_get_member_profile_data( \'field=Profile:\' ) ) : ?>
<?php echo \'<BR><span class=memberslabel>Profile:</span> \'; ?>
<?php bp_member_profile_data( \'field=Profile:\' ); ?>
<?php endif; ?>
但当我把它添加到
groups/single/members.php
它不会返回任何内容。
我是否需要添加一些特殊的内容,以使此功能在成员中发挥作用。php?
UPDATE
下面提供的解决方案可以获得显示在组成员循环中的概要文件数据,但它显示了所有成员的最后一个成员的数据,我尝试添加
<?php $user_ID = get_current_user_id(); ?>
我也试过了
<?php echo xprofile_get_field_data( \'Profile:\', $bp->displayed_user->id ); ?>
但是没有改变,我如何将相关的用户ID传递到该函数中?
此外,配置文件字段似乎只针对登录的用户显示。
最合适的回答,由SO网友:chifliiiii 整理而成
尝试以下我使用的函数:
xprofile_get_field_data(\'Profile\',$u_id);
$u_id 如果您不在成员循环中,则为用户ID。
因此,在您的情况下,应:
<?php if ( xprofile_get_field_data( \'Profile\', $user_ID ) ) : ?>
<?php echo \'<BR><span class=memberslabel>Profile:</span> \'; ?>
<?php echo xprofile_get_field_data( \'Profile\', $user_ID ); ?>
<?php endif; ?>
更新:您需要粘贴整个代码,以确保在正确的位置使用它。但您可以尝试以下方式:
<?php while ( bp_group_members() ) : bp_group_the_member(); ?>
<li>
<a href="<?php bp_group_member_domain(); ?>">
<?php bp_group_member_avatar_thumb(); ?>
</a>
<h5><?php bp_group_member_link(); ?></h5>
<span class="activity"><?php bp_group_member_joined_since(); ?></span>
<?php do_action( \'bp_group_members_list_item\' ); ?>
<?php if ( bp_is_active( \'friends\' ) ) : ?>
<div class="action">
<?php bp_add_friend_button( bp_get_group_member_id(), bp_get_group_member_is_friend() ); ?>
<?php do_action( \'bp_group_members_list_item_action\' ); ?>
</div>
<?php endif; ?>
<?php
$user_ID = bp_get_group_member_id();
if ( xprofile_get_field_data( \'Profile\', $user_ID ) ) : ?>
<?php echo \'<BR><span class=memberslabel>Profile:</span> \'; ?>
<?php echo xprofile_get_field_data( \'Profile\', $user_ID ); ?>
<?php endif; ?>
</li>
<?php endwhile; ?>