bp_has_message_threads( array|string $args = array() )
Retrieve private message threads for display in inbox/sentbox/notices.
Description
Similar to WordPress’s have_posts() function, this function is responsible for querying the database and retrieving private messages for display inside the theme via individual template parts for a member’s inbox/sentbox/notices.
Parameters
- $args
-
(array|string) (Optional) Array of arguments. All are optional.
- 'user_id'
(int) ID of the user whose threads are being loaded. Default: ID of the logged-in user. - 'box'
(string) Current "box" view. If not provided here, the current view will be inferred from the URL. - 'per_page'
(int) Number of results to return per page. Default: 10. - 'max'
(int) Max results to return. Default: false. - 'type'
(string) Type of messages to return. Values: 'all', 'read', 'unread' Default: 'all' - 'search_terms'
(string) Terms to which to limit results. Default: the value of $_REQUEST['s']. - 'page_arg'
(string) URL argument used for the pagination param. Default: 'mpage'. - 'meta_query'
(array) Meta query arguments. Only applicable if $box is not 'notices'. See WP_Meta_Query more details.
Default value: array()
- 'user_id'
Return
(bool) True if there are threads to display, otherwise false.
Source
File: bp-messages/bp-messages-template.php
function bp_has_message_threads( $args = array() ) { global $messages_template; // The default box the user is looking at. $current_action = bp_current_action(); switch ( $current_action ) { case 'notices' : case 'inbox' : $default_box = $current_action; break; default : $default_box = 'inbox'; break; } // User ID // @todo displayed user for moderators that get this far? $user_id = bp_displayed_user_id()?:bp_loggedin_user_id(); // Search Terms. $search_terms = isset( $_REQUEST['s'] ) ? stripslashes( $_REQUEST['s'] ) : ''; // Parse the arguments. $r = bp_parse_args( $args, array( 'user_id' => $user_id, 'box' => $default_box, 'per_page' => 10, 'max' => false, 'type' => 'all', 'search_terms' => $search_terms, 'include' => false, 'page_arg' => 'mpage', // See https://buddypress.trac.wordpress.org/ticket/3679. 'meta_query' => array() ), 'has_message_threads' ); // Load the messages loop global up with messages. $messages_template = new BP_Messages_Box_Template( $r ); /** * Filters if there are any message threads to display in inbox/sentbox/notices. * * @since BuddyPress 1.1.0 * * @param bool $value Whether or not the message has threads. * @param BP_Messages_Box_Template $messages_template Current message box template object. * @param array $r Array of parsed arguments passed into function. */ return apply_filters( 'bp_has_message_threads', $messages_template->has_threads(), $messages_template, $r ); }
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.