BP_REST_Topics_Actions_Endpoint::dropdown_items( WP_REST_Request $request )
Topic’s Dropdown
Description
Parameters
- $request
-
(Required) Full details about the request.
Return
(WP_REST_Response) | WP_Error
Source
File: bp-forums/classes/class-bp-rest-topics-actions-endpoint.php
public function dropdown_items( $request ) { $topic_id = $request->get_param( 'id' ); $parent = bbp_get_topic_forum_id( $topic_id ); $page = $request->get_param( 'page' ); $per_page = $request->get_param( 'per_page' ); $topics_query = new WP_Query( array( 'post_type' => bbp_get_topic_post_type(), 'post_status' => 'publish', 'post__not_in' => array( $topic_id ), 'post_parent' => $parent, 'posts_per_page' => $per_page, 'paged' => $page, 'orderby' => 'menu_order title', 'order' => 'ASC', 'disable_categories' => true, ) ); $topics = $topics_query->posts; if ( empty( $topics ) ) { $retval = new WP_Error( 'bp_rest_no_other_topics', __( 'No discussions available', 'buddyboss' ), array( 'status' => 404, ) ); } foreach ( $topics as $topic ) { $data[] = array( 'id' => $topic->ID, 'title' => array( 'raw' => $topic->post_title, 'rendered' => bbp_get_topic_title( $topic->ID ), ), ); } $response = rest_ensure_response( $data ); $response = bp_rest_response_add_total_headers( $response, $topics_query->found_posts, $per_page ); /** * Fires after a list of topics is fetched via the REST API. * * @param array $topics Fetched Topics. * @param WP_REST_Response $response The response data. * @param WP_REST_Request $request The request sent to the API. * * @since 0.1.0 */ do_action( 'bp_rest_topics_dropdown_items', $topics, $response, $request ); return $response; }
Changelog
Version | Description |
---|---|
0.1.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.