bp_has_notifications( array|string $args = '' )
Initialize the notifications loop.
Description
Based on the $args passed, bp_has_notifications() populates buddypress()->notifications->query_loop global, enabling the use of BP templates and template functions to display a list of notifications.
Parameters
- $args
-
(array|string) (Optional) Arguments for limiting the contents of the notifications loop. Can be passed as an associative array, or as a URL query string. See BP_Notifications_Notification::get() for detailed information on the arguments. In addition, also supports:
- 'max'
(int) Optional. Max items to display. Default: false. - 'page_arg'
(string) URL argument to use for pagination. Default: 'npage'.
Default value: ''
- 'max'
Return
(bool)
Source
File: bp-notifications/bp-notifications-template.php
function bp_has_notifications( $args = '' ) { // Get the default is_new argument. if ( bp_is_current_action( 'unread' ) ) { $is_new = 1; } elseif ( bp_is_current_action( 'read' ) ) { $is_new = 0; // Not on a notifications page? default to fetch new notifications. } else { $is_new = 1; } // Get the user ID. if ( bp_displayed_user_id() ) { $user_id = bp_displayed_user_id(); } else { $user_id = bp_loggedin_user_id(); } // Set the component action (by default false to get all actions) $component_action = false; if ( isset( $_REQUEST['type'] ) ) { $component_action = sanitize_key( $_REQUEST['type'] ); } // Set the search terms (by default an empty string to get all notifications) $search_terms = ''; if ( isset( $_REQUEST['s'] ) ) { $search_terms = stripslashes( $_REQUEST['s'] ); } // Parse the args. $r = bp_parse_args( $args, array( 'id' => false, 'user_id' => $user_id, 'secondary_item_id' => false, 'component_name' => bp_notifications_get_registered_components(), 'component_action' => $component_action, 'is_new' => $is_new, 'search_terms' => $search_terms, 'order_by' => 'date_notified', 'sort_order' => 'DESC', 'meta_query' => false, 'date_query' => false, 'page' => 1, 'per_page' => 25, // These are additional arguments that are not available in // BP_Notifications_Notification::get(). 'max' => false, 'page_arg' => 'npage', ), 'has_notifications' ); // Get the notifications. $query_loop = new BP_Notifications_Template( $r ); // Setup the global query loop. buddypress()->notifications->query_loop = $query_loop; /** * Filters whether or not the user has notifications to display. * * @since BuddyPress 1.9.0 * @since BuddyPress 2.6.0 Added the `$r` parameter. * * @param bool $value Whether or not there are notifications to display. * @param BP_Notifications_Template $query_loop BP_Notifications_Template object instance. * @param array $r Array of arguments passed into the BP_Notifications_Template class. */ return apply_filters( 'bp_has_notifications', $query_loop->has_notifications(), $query_loop, $r ); }
Changelog
Version | Description |
---|---|
BuddyPress 1.9.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.