Solution to Annoying WordPress Error Warning: Invalid argument supplied for foreach() wp-includes/query.php on line 2762

Initial post by Blackspotradish, this saved me hours of frustration!

This was an annoying bug on one of my wordpress + buddypress for a while and the fix is amazingly simple :

Edit your wp-includes/query.php around line 2762

// Always sanitize
foreach ( $this->posts as $i => $post ) {
    $this->posts[$i] = sanitize_post( $post, 'raw' );
}

and replace by :

// Always sanitize
if ( $this->post_count > 0 ) {
    foreach ( $this->posts as $i => $post ) {
        $this->posts[$i] = sanitize_post( $post, 'raw' );
    }
}

Comments

comments

Recent Posts