_preload_old_requests_classes_and_interfaces

函式
_preload_old_requests_classes_and_interfaces ( $to )
引數
  • (string) $to Path to old WordPress installation.
    Required:
定義位置
相關方法
ms_load_current_site_and_networkwp_global_styles_render_svg_filters_wp_menu_item_classes_by_contextrest_preload_api_requestwp_get_global_styles_svg_filters
引入
6.2.0
棄用
-

_preload_old_requests_classes_and_interfaces: 這是一個WordPress的內部函式,用來預載入不再使用的舊的類和介面。它被用來確保向後相容舊版本的WordPress和可能仍在使用這些廢棄的類和介面的外掛。

預載入舊的Requests類和介面。

這個函式在升級過程中刪除檔案之前將舊的請求程式碼預裝到記憶體中。為什麼?Requests的程式碼是通過自動載入器載入到記憶體中的,這意味著當一個類或介面被需要時:如果一個請求正在進行中,Requests可以嘗試訪問程式碼。如果檔案不在那裡,可能會發生一個致命的錯誤。如果檔案被替換了,新的程式碼與舊的不相容,導致致命的錯誤。預載入確保程式碼在更新之前就在記憶體中。

function _preload_old_requests_classes_and_interfaces( $to ) {
	global $_old_requests_files, $wp_filesystem, $wp_version;

	/*
	 * Requests was introduced in WordPress 4.6.
	 *
	 * Skip preloading if the website was previously using
	 * an earlier version of WordPress.
	 */
	if ( version_compare( $wp_version, '4.6', '<' ) ) {
		return;
	}

	if ( ! defined( 'REQUESTS_SILENCE_PSR0_DEPRECATIONS' ) ) {
		define( 'REQUESTS_SILENCE_PSR0_DEPRECATIONS', true );
	}

	foreach ( $_old_requests_files as $name => $file ) {
		// Skip files that aren't interfaces or classes.
		if ( is_int( $name ) ) {
			continue;
		}

		// Skip if it's already loaded.
		if ( class_exists( $name ) || interface_exists( $name ) ) {
			continue;
		}

		// Skip if the file is missing.
		if ( ! $wp_filesystem->is_file( $to . $file ) ) {
			continue;
		}

		require_once $to . $file;
	}
}

常見問題

FAQs
檢視更多 >