您应该启用WP_DEBUG 模式,这样死亡的白色屏幕将给您提供更有用的错误消息。
白色屏幕可能是打字错误造成的,但在我看来还可以。您的主机有simplexml_load_string()
? 如果没有简单的XML库,这可能就是为什么返回$setlink有效,而返回$setfound会导致WSOD。
我对你的代码做了一些修改isset()
检查并确保您不依赖$_POST
在您的editsteamlink()
函数检查simplexml_load_string
函数存在。
function editsteamlink( $setlink = \'\' ){
if( $setlink == \'\' || ! function_exists( \'simplexml_load_string\' ) ){
return \'\';
}
$setlink = untrailingslashit( $setlink ) ."/?xml=1";
$setresponse = wp_remote_get($setlink);
$setbody = wp_remote_retrieve_body($setresponse);
$setxml = simplexml_load_string($setbody);
$setfound = (string)$setxml->steamID64;
return $setfound;
}
function be_save_custom_avatar_field( $user_id ) {
if ( !current_user_can( \'edit_user\', $user_id ) ) {
return false;
}
$steam_link = isset( $_POST[\'steamlink\'] ) ? $_POST[\'steamlink\'] : \'\';
$steam_id = editsteamlink( $steam_link );
update_usermeta( $user_id, \'steamlink\', $steam_link );
update_usermeta( $user_id, \'steamid64\', $steam_id );
}
未经测试,因此您的里程数可能会有所不同!:)