bbp_forum_get_subforums( mixed $args = '' )
Return subforums of given forum
Description
Parameters
- $args
-
(Optional) All the arguments supported by WP_Query
Default value: ''
Return
(mixed) false if none, array of subs if yes
Source
File: bp-forums/forums/template.php
function bbp_forum_get_subforums( $args = '' ) { // Use passed integer as post_parent if ( is_numeric( $args ) ) $args = array( 'post_parent' => $args ); // Setup possible post__not_in array $post_stati = array( bbp_get_public_status_id() ); // Super admin get whitelisted post statuses if ( bbp_is_user_keymaster() ) { $post_stati = array( bbp_get_public_status_id(), bbp_get_private_status_id(), bbp_get_hidden_status_id() ); // Not a keymaster, so check caps } else { // Check if user can read private forums if ( current_user_can( 'read_private_forums' ) ) { $post_stati[] = bbp_get_private_status_id(); } // Check if user can read hidden forums if ( current_user_can( 'read_hidden_forums' ) ) { $post_stati[] = bbp_get_hidden_status_id(); } } // Parse arguments against default values $r = bbp_parse_args( $args, array( 'post_parent' => 0, 'post_type' => bbp_get_forum_post_type(), 'post_status' => implode( ',', $post_stati ), 'posts_per_page' => bbp_get_forums_per_page(), 'orderby' => 'menu_order title', 'order' => 'ASC', 'ignore_sticky_posts' => true, 'no_found_rows' => true ), 'forum_get_subforums' ); $r['post_parent'] = bbp_get_forum_id( $r['post_parent'] ); // Create a new query for the subforums $get_posts = new WP_Query(); // No forum passed $sub_forums = !empty( $r['post_parent'] ) ? $get_posts->query( $r ) : array(); return (array) apply_filters( 'bbp_forum_get_subforums', $sub_forums, $r ); }
Changelog
Version | Description |
---|---|
bbPress (r2747) | 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.