Como obter um link de perfil de usuário do buddypress e um determinado campo de perfil de usuário para o autor da postagem atual?


16

Quero substituir get_author_link () e get_the_author_meta ($ feld)

com algo equivalente a apontar para o autor da página de perfil do usuário atual do Buddypress e recuperar um campo de perfil específico da página do Buddypress

ou seja, eu só quero mostrar um link para o perfil do usuário pós e uma biografia de um dos campos do perfil BP

Não tenho certeza de quais funções devo usar para isso ... A documentação do BuddyPress ainda não é muito clara, ao contrário do WP Codex ...

obrigado

Respostas:


20

Para o link do perfil de um autor, use

bp_core_get_user_domain( $user_id )

para obter o URL e

bp_core_get_userlink( $user_id )

para obter um elemento de link HTML, incluindo o nome para exibição.

Para os dados xprofile, use

xprofile_get_field_data( $field, $user_id )

$field pode ser o nome do campo (como 'Biografia') ou o ID numérico do campo.


3

É um pouco diferente, mas como esse tópico aparece primeiro no Google, pode ser útil para outra pessoa.

Para obter o link atual do perfil do usuário conectado, use bp_loggedin_user_domain()

Espero que ajude.


2

Se você precisar adicioná-lo nos comentários:

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

Incluí um campo de perfil de amostra 'local', que pode ser removido. Isto é para exibir um link para comentar o perfil Buddypress do autor. Ele deve ser colocado dentro do seu loop de comentários, que será algo como:

foreach($comments as $comment)
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.