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

в этой теме есть ошибка: http://www.mafiashare.net/download/sound-rock-music-band-wordpress-theme/, когда я пытаюсь ее активировать, это появляется

( ! ) SCREAM: Error suppression ignored for ( ! ) Fatal error: Cannot re-assign auto-global variable _POST in C:\wamp\www\web\wp-content\themes\soundrock\functions.php on line 48 Call Stack # Time Memory Function Location 1 0.0014 364560 {main}( ) ..\themes.php:0 2 0.0043 433520 require_once( 'C:\wamp\www\web\wp-admin\admin.php' ) ..\themes.php:10 3 0.0048 451648 require_once( 'C:\wamp\www\web\wp-load.php' ) ..\admin.php:30 4 0.0052 463256 require_once( 'C:\wamp\www\web\wp-config.php' ) ..\wp-load.php:29 5 0.0061 553312 require_once( 'C:\wamp\www\web\wp-settings.php' ) ..\wp-config.php:90 

поэтому в functions.php в строке 48, я удалил этот код, затем тема работает, но я хочу, чтобы он выдавал ошибку?

 function events_meta_save($_POST, $post_id) { global $wpdb; if ( empty($_POST["event_social_sharing"]) ) $_POST["event_social_sharing"] = ""; if ( empty($_POST["event_start_time"]) ) $_POST["event_start_time"] = ""; if ( empty($_POST["event_end_time"]) ) $_POST["event_end_time"] = ""; if ( empty($_POST["event_all_day"]) ) $_POST["event_all_day"] = ""; if ( empty($_POST["event_booking_url"]) ) $_POST["event_booking_url"] = ""; if ( empty($_POST["event_address"]) ) $_POST["event_address"] = ""; $sxe = new SimpleXMLElement("<event></event>"); $sxe->addChild('event_social_sharing', $_POST["event_social_sharing"] ); $sxe->addChild('event_start_time', $_POST["event_start_time"] ); $sxe->addChild('event_end_time', $_POST["event_end_time"] ); $sxe->addChild('event_all_day', $_POST["event_all_day"] ); $sxe->addChild('event_booking_url', $_POST["event_booking_url"] ); $sxe->addChild('event_address', $_POST["event_address"] ); $sxe = save_layout_xml($sxe); update_post_meta( $post_id, 'cs_event_meta', $sxe->asXML() ); } 

замещать

 function events_meta_save($_POST, $post_id) { global $wpdb; if ( empty($_POST["event_social_sharing"]) ) $_POST["event_social_sharing"] = ""; .... .... 

с

 function events_meta_save($_my_post, $post_id) { global $wpdb; if ( empty($_my_post["event_social_sharing"]) ) $_POST["event_social_sharing"] = ""; .... .... 

Не забудьте заменить ALL $_POST внутри условия на $_my_post или любое другое имя u like

Причина, как написано в других ответах:

Вы не можете использовать $ _POST в качестве аргумента function / method

, Попытка повторного назначения переменной в таблице символов. Рассматривайте это как сохраненное ключевое слово языка. Помещение его в подпись функции – это как определение новой переменной с использованием ключевого слова языка в качестве имени переменной.

@snjflame, вам не нужно использовать $_POST в качестве параметра функции, потому что это супергрупповая переменная. Вы не можете переопределить переменные $_POST ; вам нужно определить « handler » для переменной $_POST в начале вашей функции и использовать ее ниже.

Например:

 <?php function events_meta_save( $post_id ) { global $wpdb; $post = $_POST; if ( empty($post["event_social_sharing"]) ) $post["event_social_sharing"] = ""; if ( empty($post["event_start_time"]) ) $post["event_start_time"] = ""; if ( empty($post["event_end_time"]) ) $post["event_end_time"] = ""; if ( empty($post["event_all_day"]) ) $post["event_all_day"] = ""; if ( empty($post["event_booking_url"]) ) $post["event_booking_url"] = ""; if ( empty($post["event_address"]) ) $post["event_address"] = ""; $sxe = new SimpleXMLElement("<event></event>"); $sxe->addChild('event_social_sharing', $post["event_social_sharing"] ); $sxe->addChild('event_start_time', $post["event_start_time"] ); $sxe->addChild('event_end_time', $post["event_end_time"] ); $sxe->addChild('event_all_day', $post["event_all_day"] ); $sxe->addChild('event_booking_url', $post["event_booking_url"] ); $sxe->addChild('event_address', $post["event_address"] ); $sxe = save_layout_xml($sxe); update_post_meta( $post_id, 'cs_event_meta', $sxe->asXML() ); } ?>