尝试激活它时, 此主题有一个错误, 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
#TimeMemoryFunctionLocation
10.0014364560{main}( )..\themes.php:0
20.0043433520require_once( 'C:\wamp\www\web\wp-admin\admin.php' )..\themes.php:10
30.0048451648require_once( 'C:\wamp\www\web\wp-load.php' )..\admin.php:30
40.0052463256require_once( 'C:\wamp\www\web\wp-config.php' ) ..\wp-load.php:29
50.0061553312require_once( 'C:\wamp\www\web\wp-settings.php' )..\wp-config.php:90
所以在第48行的functions.php中, 我删除了这段代码, 然后主题开始工作了, 但是我想为什么它引发错误?
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() );
}
#1更换
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"] = "";
....
....
不要忘记用$ _my_post或你喜欢的任何其他名称替换条件中的所有$ _POST
原因, 如其他答案中所述:
你不能将$ _POST用作函数/方法参数【WordPress主题错误” 致命错误(无法重新分配自动全局变量_POST” )】。这样做会尝试在符号表中重新分配变量。将此视为语言的已保存关键字。将其置于函数签名中, 就像使用语言的关键字作为变量名来定义新变量一样。
#2@snjflame, 你不需要将$ _POST用作函数的参数, 因为它是超全局变量。你不能重新定义$ _POST变量;你需要在函数的开头为$ _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() );
}
?>
推荐阅读
- WordPress主题致命错误”致命错误(调用未定义的方法WP_Error::get_items()”)
- 循环神经网络系列基于LSTM的唐诗生成
- #yyds干货盘点#linux命令--userdel,groupadd,gpasswd,groupdel
- Flink Streaming-Sink
- LSTM与GRU有什么联系和区别()
- 模型改善与泛化(标准化与特征映射)
- #私藏项目实操分享#SpringCloud Alibaba Sentinel使用及规则配置
- tf.nn.conv2d 你不知道的那些事儿
- 推荐学java——MyBatis高级