Wie erhalte ich einen BuddyPress-Benutzerprofil-Link und ein bestimmtes Benutzerprofil-Feld für den aktuellen Beitragsautor?

16

Ich möchte get_author_link () und get_the_author_meta ($ feld) ersetzen

mit einer Entsprechung, die auf den Autor der aktuellen Buddypress-Benutzerprofilseite verweist und ein bestimmtes Profilfeld von seiner Buddypress-Seite abruft

Ich möchte also nur einen Link zum Post-Benutzerprofil und eine Biografie aus einem seiner BP-Profilfelder anzeigen

Ich bin mir nicht sicher, welche Funktionen ich dafür verwenden soll ... Die BuddyPress-Dokumentation ist im Gegensatz zum WP-Codex immer noch nicht sehr klar ...

Vielen Dank

unvollkommen
quelle

Antworten:

20

Verwenden Sie für den Profillink eines Autors

bp_core_get_user_domain( $user_id )

um die URL zu erhalten, und

bp_core_get_userlink( $user_id )

um ein HTML-Link-Element einschließlich des Anzeigenamens abzurufen.

Verwenden Sie für die xprofile-Daten

xprofile_get_field_data( $field, $user_id )

$field kann entweder der Name des Feldes (wie 'Biografie') oder die numerische Feld-ID sein.

Boone-Schluchten
quelle
3

Es ist ein bisschen anders, aber da dieser Thread zuerst bei Google erscheint, kann er für andere nützlich sein.

Um den Link zum aktuell angemeldeten Benutzerprofil abzurufen, verwenden Sie einfach bp_loggedin_user_domain()

Ich hoffe, das hilft.

Buzut
quelle
2

Wenn Sie es in den Kommentaren hinzufügen müssen:

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

Ich habe ein Beispielprofilfeld 'Ort' eingefügt, das entfernt werden kann. Hiermit wird ein Link zum Buddypress-Profil des Kommentars angezeigt. Es muss in die Kommentarschleife eingefügt werden, die ungefähr so ​​aussieht:

foreach($comments as $comment)
Lorelei Carson
quelle