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.