Comment obtenir un lien de profil utilisateur buddypress et un certain champ de profil utilisateur pour l'auteur du message actuel?

16

Je veux remplacer get_author_link () et get_the_author_meta ($ feld)

avec quelque chose d'équivalent pour pointer vers l'auteur de la page de profil utilisateur de Buddypress en cours et récupérer un champ de profil spécifique à partir de sa page Buddypress

c'est-à-dire que je veux juste montrer un lien vers le profil de l'utilisateur et une biographie de l'un de ses champs de profil BP

Je ne sais pas quelles fonctions utiliser pour cela ... La documentation de BuddyPress n'est toujours pas très claire contrairement au WP Codex ...

Merci

unfulvio
la source

Réponses:

20

Pour le lien du profil d'un auteur, utilisez

bp_core_get_user_domain( $user_id )

pour obtenir l'URL, et

bp_core_get_userlink( $user_id )

pour obtenir un élément de lien HTML, y compris le nom d'affichage.

Pour les données xprofile, utilisez

xprofile_get_field_data( $field, $user_id )

$field peut être soit le nom du champ (comme «Biographie») ou l'identifiant numérique du champ.

Gorges de Boone
la source
3

C'est un peu différent, mais comme ce fil apparaît en premier sur Google, il pourrait être utile pour quelqu'un d'autre.

Pour obtenir le lien du profil utilisateur connecté actuel, utilisez simplement bp_loggedin_user_domain()

J'espère que cela pourra aider.

Buzut
la source
2

Si vous devez l'ajouter dans les commentaires:

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

J'ai inclus un exemple de champ de profil «emplacement», qui peut être supprimé. C'est pour afficher un lien vers le profil Buddypress de l'auteur du commentaire. Il doit être placé dans votre boucle de commentaires, qui ressemblera à quelque chose comme:

foreach($comments as $comment)
Lorelei Carson
la source