Неустранимая ошибка: нельзя повторно назначить автоматически-глобальную переменную _POST

Я не могу получить доступ к моему администратору WP (version3.4.2). Как сказано выше

Неустранимая ошибка: нельзя переназначить автоматически-глобальную переменную _POST в /home/xxx/public_html/wp-content/themes/rtthemes16/rt-framework/classes/admin.php в строке 540.

Строка 540:

function rt_check_sidebar_array($_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; } } } $newPost == $newPost ? $newPost : $_POST; return $_POST; } 

Какие-нибудь идеи? Благодаря 🙂

Related of "Неустранимая ошибка: нельзя повторно назначить автоматически-глобальную переменную _POST"

Начиная с PHP 5.4, вы не можете использовать суперглобал как параметр для функции

$ _POST доступен по всему миру. Поэтому вам не нужно переходить к вашей функции.

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

Вот как выглядит ваша функция

 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; } с 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; } с 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, единственное, что вам нужно сделать, как сказал Абхик Чакраборти, – удалить $_POST из функции rt_check_sidebar и оставить функцию без параметров, например:

ваша строка 540:

 function rt_check_sidebar_array($_POST){ 

измените его на:

 function rt_check_sidebar_array(){ 

@ User3450716. Вы также не можете изменять сверхглобальные переменные, поэтому вы не можете использовать 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; }