bp_has_members( array|string $args = array() )
Initialize the members loop.
Description
Based on the $args passed, bp_has_members() populates the $members_template global, enabling the use of BuddyPress templates and template functions to display a list of members.
Parameters
- $args
-
(Optional) Arguments for limiting the contents of the members loop. Most arguments are in the same format as BP_User_Query. However, because the format of the arguments accepted here differs in a number of ways, and because bp_has_members() determines some default arguments in a dynamic fashion, we list all accepted arguments here as well. Arguments can be passed as an associative array, or as a URL query string (eg, 'user_id=4&per_page=3').
- 'type'
(int) Sort order. Accepts 'active', 'random', 'newest', 'popular', 'online', 'alphabetical'. Default: 'active'. - 'page'
(int|bool) Page of results to display. Default: 1. - 'per_page'
(int|bool) Number of results per page. Default: 20. - 'max'
(int|bool) Maximum number of results to return. Default: false (unlimited). - 'page_arg'
(string) The string used as a query parameter in pagination links. Default: 'bpage'. - 'include'
(array|int|string|bool) Limit results by a list of user IDs. Accepts an array, a single integer, a comma-separated list of IDs, or false (to disable this limiting). Accepts 'active', 'alphabetical', 'newest', or 'random'. Default: false. - 'exclude'
(array|int|string|bool) Exclude users from results by ID. Accepts an array, a single integer, a comma-separated list of IDs, or false (to disable this limiting). Default: false. - 'user_id'
(int) If provided, results are limited to the friends of the specified user. When on a user's Connections page, defaults to the ID of the displayed user. Otherwise defaults to 0. - 'member_type'
(string|array) Array or comma-separated list of profile types to limit results to. - 'member_type__in'
(string|array) Array or comma-separated list of profile types to limit results to. - 'member_type__not_in'
(string|array) Array or comma-separated list of profile types to exclude from results. - 'search_terms'
(string) Limit results by a search term. Default: value of$_REQUEST['members_search']
or$_REQUEST['s']
, if present. Otherwise false. - 'meta_key'
(string) Limit results by the presence of a usermeta key. Default: false. - 'meta_value'
(mixed) When used with meta_key, limits results by the a matching usermeta value. Default: false. - 'populate_extras'
(bool) Whether to fetch optional data, such as friend counts. Default: true.
Default value: array()
- 'type'
Return
(bool) Returns true when blogs are found, otherwise false.
Source
File: bp-members/bp-members-template.php
327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 | function bp_has_members( $args = array () ) { global $members_template ; // Default user ID. $user_id = 0; // User filtering. if ( bp_is_user_friends() && ! bp_is_user_friend_requests() && ! bp_is_user_mutual_friends() ) { $user_id = bp_displayed_user_id(); } $include = false; $type = 'active' ; // Mutual User filtering. if ( isset( $args [ 'type' ] ) && 'online' != $args [ 'type' ] && bp_is_user_friends() && bp_is_user_mutual_friends() ) { $include = bp_get_mutual_friendships(); $type = 'alphabetical' ; } $member_type = bp_get_current_member_type(); if ( ! $member_type && ! empty ( $_GET [ 'member_type' ] ) ) { if ( is_array ( $_GET [ 'member_type' ] ) ) { $member_type = $_GET [ 'member_type' ]; } else { // Can be a comma-separated list. $member_type = explode ( ',' , $_GET [ 'member_type' ] ); } } $search_terms_default = null; $search_query_arg = bp_core_get_component_search_query_arg( 'members' ); if ( ! empty ( $_REQUEST [ $search_query_arg ] ) ) { $search_terms_default = stripslashes ( $_REQUEST [ $search_query_arg ] ); } // Type: active ( default ) | random | newest | popular | online | alphabetical. $r = bp_parse_args( $args , array ( 'type' => $type , 'page' => 1, 'per_page' => 20, 'max' => false, 'include' => $include , // Pass a user_id or a list (comma-separated or array) of user_ids to only show these users. 'exclude' => false, // Pass a user_id or a list (comma-separated or array) of user_ids to exclude these users. 'user_id' => $user_id , // Pass a user_id to only show friends of this user. 'member_type' => $member_type , 'member_type__in' => '' , 'member_type__not_in' => '' , 'search_terms' => $search_terms_default , 'meta_key' => false, // Only return users with this usermeta. 'meta_value' => false, // Only return users where the usermeta value matches. Requires meta_key. 'populate_extras' => true // Fetch usermeta? Connection count, last active etc. ), 'has_members' ); // Pass a filter if ?s= is set. if ( is_null ( $r [ 'search_terms' ] ) ) { if ( ! empty ( $_REQUEST [ 's' ] ) ) { $r [ 'search_terms' ] = $_REQUEST [ 's' ]; } else { $r [ 'search_terms' ] = false; } } // Set per_page to max if max is larger than per_page. if ( ! empty ( $r [ 'max' ] ) && ( $r [ 'per_page' ] > $r [ 'max' ] ) ) { $r [ 'per_page' ] = $r [ 'max' ]; } // Query for members and populate $members_template global. $members_template = new BP_Core_Members_Template( $r [ 'type' ], $r [ 'page' ], $r [ 'per_page' ], $r [ 'max' ], $r [ 'user_id' ], $r [ 'search_terms' ], $r [ 'include' ], $r [ 'populate_extras' ], $r [ 'exclude' ], $r [ 'meta_key' ], $r [ 'meta_value' ], $r [ 'page_arg' ], $r [ 'member_type' ], $r [ 'member_type__in' ], $r [ 'member_type__not_in' ] ); /** * Filters whether or not BuddyPress has members to iterate over. * * @since BuddyPress 1.2.4 * @since BuddyPress 2.6.0 Added the `$r` parameter * * @param bool $value Whether or not there are members to iterate over. * @param array $members_template Populated $members_template global. * @param array $r Array of arguments passed into the BP_Core_Members_Template class. */ return apply_filters( 'bp_has_members' , $members_template ->has_members(), $members_template , $r ); } |
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.