Как получить ссылку на профиль пользователя buddypress и определенное поле профиля пользователя для текущего автора сообщения?


16

Я хочу заменить get_author_link () и get_the_author_meta ($ feld)

с чем-то эквивалентным, чтобы указать на автора текущей страницы профиля пользователя Buddypress и получить определенное поле профиля со своей страницы Buddypress

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

Я не уверен, какие функции мне следует использовать для этого ... Документация BuddyPress все еще не очень ясна в отличие от Кодекса WP ...

Благодарность

Ответы:


20

Для ссылки на профиль автора используйте

bp_core_get_user_domain( $user_id )

чтобы получить URL, и

bp_core_get_userlink( $user_id )

чтобы получить элемент ссылки HTML, включая отображаемое имя.

Для данных xprofile используйте

xprofile_get_field_data( $field, $user_id )

$field может быть именем поля (например, «Биография») или числовым идентификатором поля.


3

Это немного по-другому, но так как этот поток появляется первым в Google, он может быть полезен для кого-то еще.

Чтобы получить текущую авторизованную ссылку на профиль пользователя, просто используйте bp_loggedin_user_domain()

Надеюсь, это поможет.


2

Если вам нужно добавить это в комментариях:

    <?php
$author_id = get_comment(get_comment_ID())->user_id;
if (function_exists('bp_get_profile_field_data')) {
    $bp_name = bp_core_get_userlink( $author_id );
    $bp_location = bp_get_profile_field_data('field=Location&user_id='.$author_id);
    if ($bp_name) {
    echo '<div>'. $bp_name . '</div>';
    }
    if ($bp_location) {
    echo '<div class="authorinfo">'. $bp_location . '</div>';
    }
}
?>

Я включил пример поля профиля «местоположение», которое может быть удалено. Это для отображения ссылки на комментарий автора профиля Buddypress. Он должен быть помещен в ваш цикл комментариев, который будет выглядеть примерно так:

foreach($comments as $comment)
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.