Fatal error: Cannot re-assign auto-global variable _POST Fatal error: Cannot re-assign auto-global variable _POST wordpress wordpress

Fatal error: Cannot re-assign auto-global variable _POST


Since PHP 5.4, you cannot use a superglobal as the parameter to a function

$_POST is globally accessible. So you don't have to pass to your function.

http://php.net/manual/en/language.variables.superglobals.php#112184

This is how your function should look like

function rt_check_sidebar_array(){    if(is_array($_POST)){        $start_unset_count = 0;        foreach($_POST as $key => $value){            if(stristr($key, '_sidebar_name') == TRUE && $value=="") {                                  unset($_POST[$key]);                $start_unset_count = 1;            }            if($start_unset_count>0){                unset($_POST[$key]);                $start_unset_count++;            }            if($start_unset_count==6){                $start_unset_count = 0;            }                       }    }    $newPost == $newPost ? $newPost : $_POST;           return $_POST;}


@user3450716, the only thing you need to do, as Abhik Chakraborty said, is to delete the $_POST from your function rt_check_sidebar parameters and leave the function with no parameters, like this:

your line 540:

function rt_check_sidebar_array($_POST){

change it to:

function rt_check_sidebar_array(){


@user3450716.You can't change superglobal variables too, so you can't use unset($_POST[$key])

function rt_check_sidebar_array(){    $post = $_POST;    if(is_array($post)){        $start_unset_count = 0;        foreach( $post as $key => $value ){            if( stristr( $key, '_sidebar_name' ) == TRUE && $value == "" ) {                                  unset( $post[ $key ] );                $start_unset_count = 1;            }            if( $start_unset_count > 0 ){                unset( $post[ $key ] );                $start_unset_count++;            }            if( $start_unset_count == 6 ){                $start_unset_count = 0;            }                       }    }    // idk why you wrote this,    // because $newPost variable isn't used in the code above and below    $newPost == $newPost ? $newPost : $post;    return $post;}