$post_stati[] = bbp_get_public_status_id();
-
Hi, i had a big problem with bbpress in the sense that it crashed (fatal error) every time i tried to administrate it by clicking the “forums” tab.
I found out that the below function was the problem, and in particular that i needed to change to:
$post_stati = bbp_get_public_status_id();
from
$post_stati[] = bbp_get_public_status_id();for some reason the straight brackets broke everything, i don’t understand why, so i wanted to flag this for future updates. i’m a complete newb so yeah 😀
error code:
Fatal error: Uncaught Error: [] operator not supported for strings in /customers/f/9/9/simzone.net/httpd.www/HQ/wp-content/plugins/bbpress/includes/forums/functions.php:1800 Stack trace: #0 /customers/f/9/9/simzone.net/httpd.www/HQ/wp-includes/class-wp-hook.php(298): bbp_pre_get_posts_normalize_forum_visibility(Object(WP_Query)) #1 /customers/f/9/9/simzone.net/httpd.www/HQ/wp-includes/class-wp-hook.php(323): WP_Hook->apply_filters('', Array) #2 /customers/f/9/9/simzone.net/httpd.www/HQ/wp-includes/plugin.php(515): WP_Hook->do_action(Array) #3 /customers/f/9/9/simzone.net/httpd.www/HQ/wp-includes/class-wp-query.php(1681): do_action_ref_array('pre_get_posts', Array) #4 /customers/f/9/9/simzone.net/httpd.www/HQ/wp-includes/class-wp-query.php(3238): WP_Query->get_posts() #5 /customers/f/9/9/simzone.net/httpd.www/HQ/wp-includes/class-wp.php(617): WP_Query->query(Array) #6 /customers/f/9/9/simzone.net/httpd.www/HQ/wp-includes/class-wp.php(735): WP->query_posts() #7 /customers/f/9/9/simzone.net/httpd.www/HQ/wp-includes/functions in /customers/f/9/9/simzone.net/httpd.www/HQ/wp-content/plugins/bbpress/includes/forums/functions.php on line 1800' adjusted function:
function bbp_pre_get_posts_normalize_forum_visibility( $posts_query = null ) {
// Bail if all forums are explicitly allowed
if ( true === apply_filters( ‘bbp_include_all_forums’, false, $posts_query ) ) {
return;
}// Bail if $posts_query is not an object or of incorrect class
if ( !is_object( $posts_query ) || !is_a( $posts_query, ‘WP_Query’ ) ) {
return;
}// Get query post types array .
$post_types = (array) $posts_query->get( ‘post_type’ );// Forums
if ( bbp_get_forum_post_type() === implode( ”, $post_types ) ) {// Prevent accidental wp-admin post_row override
if ( is_admin() && isset( $_REQUEST[‘post_status’] ) ) {
return;
}/** Default ***********************************************************/
// Get any existing post status
$post_stati = $posts_query->get( ‘post_status’ );// Default to public status
if ( empty( $post_stati ) ) {
$post_stati = bbp_get_public_status_id();
# $post_stati[] = bbp_get_public_status_id();// Split the status string
} elseif ( is_string( $post_stati ) ) {
$post_stati = explode( ‘,’, $post_stati );
}/** Private ***********************************************************/
// Remove bbp_get_private_status_id() if user is not capable
if ( ! current_user_can( ‘read_private_forums’ ) ) {
$key = array_search( bbp_get_private_status_id(), $post_stati );
if ( !empty( $key ) ) {
unset( $post_stati[$key] );
}// …or add it if they are
} else {
$post_stati = bbp_get_private_status_id();
#$post_stati[] = bbp_get_private_status_id();
}/** Hidden ************************************************************/
// Remove bbp_get_hidden_status_id() if user is not capable
if ( ! current_user_can( ‘read_hidden_forums’ ) ) {
$key = array_search( bbp_get_hidden_status_id(), $post_stati );
if ( !empty( $key ) ) {
unset( $post_stati[$key] );
}// …or add it if they are
} else {
$post_stati = bbp_get_hidden_status_id();
#$post_stati[] = bbp_get_hidden_status_id();
}// Add the statuses
$posts_query->set( ‘post_status’, array_unique( array_filter( $post_stati ) ) );
}// Topics Or Replies
if ( array_intersect( array( bbp_get_topic_post_type(), bbp_get_reply_post_type() ), $post_types ) ) {// Get forums to exclude
$forum_ids = bbp_exclude_forum_ids( ‘meta_query’ );// Bail if no forums to exclude
if ( ! array_filter( $forum_ids ) ) {
return;
}// Get any existing meta queries
$meta_query = $posts_query->get( ‘meta_query’ );// Add our meta query to existing
$meta_query[] = $forum_ids;// Set the meta_query var
$posts_query->set( ‘meta_query’, $meta_query );
}
}/**
* Returns the forum’s topic ids
*
* Only topics with published and closed statuses are returned
*
* @since bbPress (r2908)
*
* @param int $forum_id Forum id
* @uses bbp_get_topic_post_type() To get the topic post type
* @uses bbp_get_public_child_ids() To get the topic ids
* @uses apply_filters() Calls ‘bbp_forum_query_topic_ids’ with the topic ids
* and forum id
*/’
- You must be logged in to reply to this topic.