Skip to:
Content
Pages
Categories
Search
Top
Bottom

$post_stati[] = bbp_get_public_status_id();


  • wautersandreas
    Participant

    @wautersandreas

    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
    */’

Viewing 2 replies - 1 through 2 (of 2 total)

  • wautersandreas
    Participant

    @wautersandreas

    I’ve now gotten my forum to work by commenting the entire thing and putting

    function bbp_pre_get_posts_normalize_forum_visibility( $posts_query = null ) {
        return;
    }

    would this have fatal influences on other aspects?


    Stephen Edgar
    Keymaster

    @netweb

    It sounds like you might be using PHP 7?

    If indeed that is the case the issue you are having I think is fixed in bbPress 2.6-beta

    You can update (and test) the new bbPress https://bbpress.org/forums/topic/bbpress-2-6-beta-1/

Viewing 2 replies - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.
Skip to toolbar