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

26 февр. 2012 г., 05:45:15
Просмотры: 35.9K
Голосов: 19

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

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

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

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

спасибо

0
Все ответы на вопрос 3
0
24

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

bp_core_get_user_domain( $user_id )

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

bp_core_get_userlink( $user_id )

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

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

xprofile_get_field_data( $field, $user_id )

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

13 мар. 2012 г. 00:36:28
0

Это немного другое решение, но так как данная тема отображается первой в Google, возможно, кому-то это пригодится.

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

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

30 июл. 2015 г. 18:04:56
0

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

    <?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>';
    }
}
?>

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

foreach($comments as $comment)
15 окт. 2013 г. 19:33:46