bbp_is_forum_status( $forum_id, bool $status_name, bool $check_ancestors = true, string $operator = 'AND' )
Check if the forum status is a specific one, also maybe checking ancestors
Description Description
Parameters Parameters
- $status_name
-
(Required) The forum status name to check
- $check_ancestors
-
(Optional) Check the forum ancestors
Default value: true
- $operator
-
(Optional) The logical operation to perform. 'OR' means only one forum from the tree needs to match; 'AND' means all forums must match. The default is 'AND'.
Default value: 'AND'
Return Return
(bool) True if match, false if not
Source Source
File: includes/forums/template.php
function bbp_is_forum_status( $forum_id, $status_name, $check_ancestors = true, $operator = 'AND' ) { // Setup some default variables $count = 0; $retval = false; $operator = strtoupper( $operator ); $forum_id = bbp_get_forum_id( $forum_id ); $forum_status = bbp_get_forum_status( $forum_id ); // Quickly compare statuses of first forum ID if ( $status_name === $forum_status ) { $retval = true; $count++; } // Let's check the forum's ancestors too if ( ! empty( $check_ancestors ) ) { // Adjust the ancestor check based on the count switch( $operator ) { default: case 'AND': $check_ancestors = ( $count > 0 ); break; case 'OR': $check_ancestors = ( $count < 1 ); break; } // Ancestor check passed, so continue looping through them if ( ! empty( $check_ancestors ) ) { // Loop through the forum ancestors foreach ( (array) bbp_get_forum_ancestors( $forum_id ) as $ancestor ) { // Check if the forum is a category if ( bbp_is_forum_category( $ancestor ) ) { // Check the ancestor forum status $retval = bbp_is_forum_status( $ancestor, $status_name, false ); if ( true === $retval ) { $count++; } } // Break when it reach the max count if ( ( $operator === 'OR' ) && ( $count >= 1 ) ) { break; } } } } // Filter & return return (bool) apply_filters( 'bbp_is_forum_status', $retval, $count, $forum_id, $status_name, $check_ancestors, $operator ); }
Changelog Changelog
Version | Description |
---|---|
2.6.0 | Introduced. |