Wordpress后台无法保存修改模板

更新时间:2022-08-23 14:38:17 来源:青锋建站 作者:青锋建站
  WordPress4.9之后的版本存在后台无法保存修改模板的问题,错误提示未能与站点联系来检查致命错误,因此PHP修改已被回滚。您需要采用其他方式(如SFTP)上传您修改的PHP文件。而且主题模版编辑器只能保存CSS样式表,凡是PHP类的模板一律无法保存了,这是因为新版WP存在一个BUG,以下是青锋建站给大家分享的修复方案如下:

Wordpress后台无法保存修改模板解决方法

打开wp-admin/includes/file.php文件,删除492-599行的如下代码:

if ( $is_active && 'php' === $extension ) {

 $scrape_key = md5( rand() );
 $transient = 'scrape_key_' . $scrape_key;
 $scrape_nonce = strval( rand() );
 set_transient( $transient, $scrape_nonce, 60 ); // It shouldn't take more than 60 seconds to make the two loopback requests.

 $cookies = wp_unslash( $_COOKIE );
 $scrape_params = array(
 'wp_scrape_key' => $scrape_key,
 'wp_scrape_nonce' => $scrape_nonce,
 );
 $headers = array(
 'Cache-Control' => 'no-cache',
 );

 // Include Basic auth in loopback requests.
 if ( isset( $_SERVER['PHP_AUTH_USER'] ) && isset( $_SERVER['PHP_AUTH_PW'] ) ) {
 $headers['Authorization'] = 'Basic ' . base64_encode( wp_unslash( $_SERVER['PHP_AUTH_USER'] ) . ':' . wp_unslash( $_SERVER['PHP_AUTH_PW'] ) );
 }

 // Make sure PHP process doesn't die before loopback requests complete.
 @set_time_limit( 300 );

 // Time to wait for loopback requests to finish.
 $timeout = 100;

 $needle_start = "###### wp_scraping_result_start:$scrape_key ######";
 $needle_end = "###### wp_scraping_result_end:$scrape_key ######";

 // Attempt loopback request to editor to see if user just whitescreened themselves.
 if ( $plugin ) {
 $url = add_query_arg( compact( 'plugin', 'file' ), admin_url( 'plugin-editor.php' ) );
 } elseif ( isset( $stylesheet ) ) {
 $url = add_query_arg(
 array(
 'theme' => $stylesheet,
 'file' => $file,
 ),
 admin_url( 'theme-editor.php' )
 );
 } else {
 $url = admin_url();
 }
 $url = add_query_arg( $scrape_params, $url );
 $r = wp_remote_get( $url, compact( 'cookies', 'headers', 'timeout' ) );
 $body = wp_remote_retrieve_body( $r );
 $scrape_result_position = strpos( $body, $needle_start );

 $loopback_request_failure = array(
 'code' => 'loopback_request_failed',
 'message' => __( 'Unable to communicate back with site to check for fatal errors, so the PHP change was reverted. You will need to upload your PHP file change by some other means, such as by using SFTP.' ),
 );
 $json_parse_failure = array(
 'code' => 'json_parse_error',
 );

 $result = null;
 if ( false === $scrape_result_position ) {
 $result = $loopback_request_failure;
 } else {
 $error_output = substr( $body, $scrape_result_position + strlen( $needle_start ) );
 $error_output = substr( $error_output, 0, strpos( $error_output, $needle_end ) );
 $result = json_decode( trim( $error_output ), true );
 if ( empty( $result ) ) {
 $result = $json_parse_failure;
 }
 }

 // Try making request to homepage as well to see if visitors have been whitescreened.
 if ( true === $result ) {
 $url = home_url( '/' );
 $url = add_query_arg( $scrape_params, $url );
 $r = wp_remote_get( $url, compact( 'cookies', 'headers', 'timeout' ) );
 $body = wp_remote_retrieve_body( $r );
 $scrape_result_position = strpos( $body, $needle_start );

 if ( false === $scrape_result_position ) {
 $result = $loopback_request_failure;
 } else {
 $error_output = substr( $body, $scrape_result_position + strlen( $needle_start ) );
 $error_output = substr( $error_output, 0, strpos( $error_output, $needle_end ) );
 $result = json_decode( trim( $error_output ), true );
 if ( empty( $result ) ) {
 $result = $json_parse_failure;
 }
 }
 }

 delete_transient( $transient );

 if ( true !== $result ) {

 // Roll-back file change.
 file_put_contents( $real_file, $previous_content );
 if ( function_exists( 'opcache_invalidate' ) ) {
 opcache_invalidate( $real_file, true );
 }

 if ( ! isset( $result['message'] ) ) {
 $message = __( 'An unidentified error has occurred.' );
 } else {
 $message = $result['message'];
 unset( $result['message'] );
 }
 return new WP_Error( 'php_error', $message, $result );
 }

 }
  以上就是青锋建站给大家分享的Wordpress后台无法保存修改模板的解决方法。青锋建站,提供专业的高品质网站制作服务,包括网站建设服务,SEO,网络营销,PHP开发,网站建设知名品牌,全国接单,专业做优化型网站,为企业构建营销平台。 

转载请注明来源网址:青锋建站-http://www.sjzphp.com/cmsxitong/wordpressxt/xiugaimoban_1439.html

地方分站

电话 15632335515 | 邮箱 943703539@qq.com | QQ 943703539 | 微信 qingfengjianzhan

Copyright © 2016-2026 青锋建站 版权所有