xprofile_filter_comments( array $comments, int $post_id )
Ensures that BP data appears in comments array.
Description
This filter loops through the comments return by a normal WordPress request and swaps out user data with BP xprofile data, where available.
Parameters
- $comments
-
(Required) Comments to filter in.
- $post_id
-
(Required) Post ID the comments are for.
Return
(array) $comments
Source
File: bp-xprofile/bp-xprofile-filters.php
function xprofile_filter_comments( $comments, $post_id = 0 ) {
// Locate comment authors with WP accounts.
foreach( (array) $comments as $comment ) {
if ( $comment->user_id ) {
$user_ids[] = $comment->user_id;
}
}
// If none are found, just return the comments array.
if ( empty( $user_ids ) ) {
return $comments;
}
// Pull up the xprofile fullname of each commenter.
if ( $fullnames = bp_core_get_user_displaynames( $user_ids ) ) {
foreach( (array) $fullnames as $user_id => $user_fullname ) {
$users[ $user_id ] = trim( stripslashes( $user_fullname ) );
}
}
// Loop through and match xprofile fullname with commenters.
foreach( (array) $comments as $i => $comment ) {
if ( ! empty( $comment->user_id ) ) {
if ( ! empty( $users[ $comment->user_id ] ) ) {
$comments[ $i ]->comment_author = $users[ $comment->user_id ];
}
}
}
return $comments;
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 1.2.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.