web-dev-qa-db-fra.com

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

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

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

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

Je ne suis pas sûr des fonctions à utiliser pour cela ... La documentation de BuddyPress n'est toujours pas très claire, contrairement au WP Codex ...

merci

12
unfulvio

Pour le lien du profil de l'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"), soit l'identifiant du champ numérique.

17
Boone Gorges

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

Pour obtenir le lien de profil d'utilisateur actuellement connecté, utilisez simplement bp_loggedin_user_domain()

J'espère que cela pourra aider.

2
Buzut

Si vous avez besoin de 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é. Ceci permet d'afficher un lien pour commenter le profil Buddypress de l'auteur. Il doit être placé dans votre boucle de commentaires, ce qui ressemblera à:

foreach($comments as $comment)
1
Lorelei Carson