日韩伦理亚洲欧美在线一区_免费看一级大片_在线观看视频一区二区_日韩大片高清播放器大全






    近期不少WordPress項(xiàng)目后臺升級到了最新的4.9以后,發(fā)現(xiàn)主題模版編輯器只能保存CSS樣式表,凡是PHP類的摸吧一律無法保存了,經(jīng)過google發(fā)現(xiàn)是新版WP的一個BUG,修復(fù)方案如下:

    打開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 );
    		}
    	}

    當(dāng)然這個方法僅僅是WordPress官方出更新前的一個臨時替代方式,永久的解決還是稍安勿躁等官方的fix的update吧。

    ? ? ? ? ? ? ? ? ? ? ? ?

    我們將在一個工作日內(nèi)聯(lián)系您

    ? ? ? ? ? ? ? ? ? ? ? ?

    免費(fèi)診斷您的獨(dú)立站及產(chǎn)品搜索量,制定您的海外營銷計(jì)劃

    康马县| 项城市| 黑龙江省| 包头市| 宁安市| 郴州市| 唐海县| 新化县| 闸北区| 凤山市| 阜平县| 沛县| 蓬安县| 米脂县| 金阳县| 洮南市| 获嘉县| 厦门市| 五寨县| 贵港市| 六安市| 连山| 琼结县| 淮阳县| 公主岭市| 广灵县| 灵宝市| 赞皇县| 皋兰县| 交城县| 天峨县| 逊克县| 富阳市| 尤溪县| 法库县| 松江区| 革吉县| 沈丘县| 北宁市| 文水县| 盘锦市|