Come ottenere il link del profilo utente BuddyPress e un campo specifico del profilo per l'autore del post corrente?

26 feb 2012, 05:45:15
Visualizzazioni: 35.9K
Voti: 19

Voglio sostituire get_author_link() e get_the_author_meta($field)

con qualcosa di equivalente che punti alla pagina del profilo BuddyPress dell'autore del post corrente e recuperi un campo specifico del suo profilo BuddyPress

In pratica, voglio solo mostrare un link al profilo utente dell'autore del post e una biografia da uno dei suoi campi del profilo BP

Non sono sicuro quali funzioni dovrei usare per questo... La documentazione di BuddyPress non è ancora molto chiara a differenza del Codex di WordPress...

grazie

0
Tutte le risposte alla domanda 3
0
24

Per ottenere il link al profilo di un autore, utilizza

bp_core_get_user_domain( $user_id )

per ottenere l'URL, e

bp_core_get_userlink( $user_id )

per ottenere un elemento HTML di link, incluso il nome visualizzato.

Per i dati xprofile, utilizza

xprofile_get_field_data( $field, $user_id )

$field può essere sia il nome del campo (come 'Biografia') che l'ID numerico del campo.

13 mar 2012 00:36:28
0

È un po' diverso, ma dato che questo thread appare per primo su Google, potrebbe essere utile per qualcun altro.

Per ottenere il link al profilo dell'utente attualmente loggato, basta usare bp_loggedin_user_domain()

Spero sia d'aiuto.

30 lug 2015 18:04:56
0

Se necessario aggiungerlo nei commenti:

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

Ho incluso un esempio di campo profilo 'location', che può essere rimosso. Questo serve per visualizzare un link al profilo Buddypress dell'autore del commento. Deve essere posizionato all'interno del tuo ciclo dei commenti, che avrà un aspetto simile a:

foreach($comments as $comment)
15 ott 2013 19:33:46