_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
查看更多 >