groups_get_group_members( array $args = array() )
Fetch the members of a group.
Description
Since BuddyPress 1.8, a procedural wrapper for BP_Group_Member_Query. Previously called BP_Groups_Member::get_all_for_group().
To use the legacy query, filter ‘bp_use_legacy_group_member_query’, returning true.
Parameters
- $args
-
(Optional) An array of optional arguments.
- 'group_id'
(int|array|string) ID of the group to limit results to. Also accepts multiple values either as an array or as a comma-delimited string. - 'page'
(int) Page of results to be queried. Default: 1. - 'per_page'
(int) Number of items to return per page of results. Default: 20. - 'max'
(int) Optional. Max number of items to return. - 'exclude'
(array) Optional. Array of user IDs to exclude. - 'exclude_admins_mods'
(bool|int) True (or 1) to exclude admins and mods from results. Default: 1. - 'exclude_banned'
(bool|int) True (or 1) to exclude banned users from results. Default: 1. - 'group_role'
(array) Optional. Array of group roles to include. - 'search_terms'
(string) Optional. Filter results by a search string. - 'type'
(string) Optional. Sort the order of results. 'last_joined', 'first_joined', or any of the $type params available in BP_User_Query. Default: 'last_joined'.
Default value: array()
- 'group_id'
Return
(false|array) Multi-d array of 'members' list and 'count'.
Source
File: bp-groups/bp-groups-functions.php
755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 | function groups_get_group_members( $args = array () ) { // Backward compatibility with old method of passing arguments. if ( ! is_array ( $args ) || func_num_args() > 1 ) { _deprecated_argument( __METHOD__ , '2.0.0' , sprintf( __( 'Arguments passed to %1$s should be in an associative array. See the inline documentation at %2$s for more details.' , 'buddyboss' ), __METHOD__ , __FILE__ ) ); $old_args_keys = array ( 0 => 'group_id' , 1 => 'per_page' , 2 => 'page' , 3 => 'exclude_admins_mods' , 4 => 'exclude_banned' , 5 => 'exclude' , 6 => 'group_role' , ); $args = bp_core_parse_args_array( $old_args_keys , func_get_args() ); } $r = bp_parse_args( $args , array ( 'group_id' => bp_get_current_group_id(), 'per_page' => false, 'page' => false, 'exclude_admins_mods' => true, 'exclude_banned' => true, 'exclude' => false, 'group_role' => array (), 'search_terms' => false, 'type' => 'last_joined' , ), 'groups_get_group_members' ); // For legacy users. Use of BP_Groups_Member::get_all_for_group() is deprecated. if ( apply_filters( 'bp_use_legacy_group_member_query' , false, __FUNCTION__ , func_get_args() ) ) { $retval = BP_Groups_Member::get_all_for_group( $r [ 'group_id' ], $r [ 'per_page' ], $r [ 'page' ], $r [ 'exclude_admins_mods' ], $r [ 'exclude_banned' ], $r [ 'exclude' ] ); } else { // Both exclude_admins_mods and exclude_banned are legacy arguments. // Convert to group_role. if ( empty ( $r [ 'group_role' ] ) ) { $r [ 'group_role' ] = array ( 'member' ); if ( ! $r [ 'exclude_admins_mods' ] ) { $r [ 'group_role' ][] = 'mod' ; $r [ 'group_role' ][] = 'admin' ; } if ( ! $r [ 'exclude_banned' ] ) { $r [ 'group_role' ][] = 'banned' ; } } // Perform the group member query (extends BP_User_Query). $members = new BP_Group_Member_Query( array ( 'group_id' => $r [ 'group_id' ], 'per_page' => $r [ 'per_page' ], 'page' => $r [ 'page' ], 'group_role' => $r [ 'group_role' ], 'exclude' => $r [ 'exclude' ], 'search_terms' => $r [ 'search_terms' ], 'type' => $r [ 'type' ], ) ); // Structure the return value as expected by the template functions. $retval = array ( 'members' => array_values ( $members ->results ), 'count' => $members ->total_users, ); } return $retval ; } |
Changelog
Version | Description |
---|---|
BuddyPress 1.0.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.