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.