diff --git a/src/index.php b/src/index.php
index 91c0517857339..6b9421d84b614 100644
--- a/src/index.php
+++ b/src/index.php
@@ -11,16 +11,18 @@
define( 'ABSPATH', __DIR__ . '/' );
}
-/*
- * Load the actual index.php file if the assets were already built.
- * Note: WPINC is not defined yet, it is defined later in wp-settings.php.
- */
-if ( file_exists( ABSPATH . 'wp-includes/js/dist/edit-post.js' ) ) {
+if ( ! defined( 'WPINC' ) ) {
+ define( 'WPINC', 'wp-includes' );
+}
+
+require_once ABSPATH . WPINC . '/class-wp-autoload.php';
+
+// Load the actual index.php file if the assets were already built.
+if ( file_exists( ABSPATH . WPINC . '/js/dist/edit-post.js' ) ) {
require_once ABSPATH . '_index.php';
return;
}
-define( 'WPINC', 'wp-includes' );
require_once ABSPATH . WPINC . '/version.php';
require_once ABSPATH . WPINC . '/compat.php';
require_once ABSPATH . WPINC . '/load.php';
diff --git a/src/wp-admin/custom-background.php b/src/wp-admin/custom-background.php
index 37b8c3d8b8403..08cd82960a9c7 100644
--- a/src/wp-admin/custom-background.php
+++ b/src/wp-admin/custom-background.php
@@ -10,6 +10,3 @@
*/
_deprecated_file( basename( __FILE__ ), '5.3.0', 'wp-admin/includes/class-custom-background.php' );
-
-/** Custom_Background class */
-require_once ABSPATH . 'wp-admin/includes/class-custom-background.php';
diff --git a/src/wp-admin/custom-header.php b/src/wp-admin/custom-header.php
index d89f03bbaab2a..1f11ee047aa0a 100644
--- a/src/wp-admin/custom-header.php
+++ b/src/wp-admin/custom-header.php
@@ -10,6 +10,3 @@
*/
_deprecated_file( basename( __FILE__ ), '5.3.0', 'wp-admin/includes/class-custom-image-header.php' );
-
-/** Custom_Image_Header class */
-require_once ABSPATH . 'wp-admin/includes/class-custom-image-header.php';
diff --git a/src/wp-admin/includes/admin.php b/src/wp-admin/includes/admin.php
index ce2ec0c68b855..455448e23cd61 100644
--- a/src/wp-admin/includes/admin.php
+++ b/src/wp-admin/includes/admin.php
@@ -42,9 +42,6 @@
/** WordPress Misc Administration API */
require_once ABSPATH . 'wp-admin/includes/misc.php';
-/** WordPress Misc Administration API */
-require_once ABSPATH . 'wp-admin/includes/class-wp-privacy-policy-content.php';
-
/** WordPress Options Administration API */
require_once ABSPATH . 'wp-admin/includes/options.php';
@@ -55,7 +52,6 @@
require_once ABSPATH . 'wp-admin/includes/post.php';
/** WordPress Administration Screen API */
-require_once ABSPATH . 'wp-admin/includes/class-wp-screen.php';
require_once ABSPATH . 'wp-admin/includes/screen.php';
/** WordPress Taxonomy Administration API */
@@ -65,8 +61,6 @@
require_once ABSPATH . 'wp-admin/includes/template.php';
/** WordPress List Table Administration API and base class */
-require_once ABSPATH . 'wp-admin/includes/class-wp-list-table.php';
-require_once ABSPATH . 'wp-admin/includes/class-wp-list-table-compat.php';
require_once ABSPATH . 'wp-admin/includes/list-table.php';
/** WordPress Theme Administration API */
@@ -75,18 +69,9 @@
/** WordPress Privacy Functions */
require_once ABSPATH . 'wp-admin/includes/privacy-tools.php';
-/** WordPress Privacy List Table classes. */
-// Previously in wp-admin/includes/user.php. Need to be loaded for backward compatibility.
-require_once ABSPATH . 'wp-admin/includes/class-wp-privacy-requests-table.php';
-require_once ABSPATH . 'wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php';
-require_once ABSPATH . 'wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php';
-
/** WordPress User Administration API */
require_once ABSPATH . 'wp-admin/includes/user.php';
-/** WordPress Site Icon API */
-require_once ABSPATH . 'wp-admin/includes/class-wp-site-icon.php';
-
/** WordPress Update Administration API */
require_once ABSPATH . 'wp-admin/includes/update.php';
diff --git a/src/wp-admin/includes/ajax-actions.php b/src/wp-admin/includes/ajax-actions.php
index 75d7a610006af..522f3b101563f 100644
--- a/src/wp-admin/includes/ajax-actions.php
+++ b/src/wp-admin/includes/ajax-actions.php
@@ -366,8 +366,6 @@ function wp_ajax_autocomplete_user() {
* @since 4.8.0
*/
function wp_ajax_get_community_events() {
- require_once ABSPATH . 'wp-admin/includes/class-wp-community-events.php';
-
check_ajax_referer( 'community_events' );
$search = isset( $_POST['location'] ) ? wp_unslash( $_POST['location'] ) : '';
@@ -1935,10 +1933,6 @@ function wp_ajax_wp_link_ajax() {
$args['pagenum'] = ! empty( $_POST['page'] ) ? absint( $_POST['page'] ) : 1;
- if ( ! class_exists( '_WP_Editors', false ) ) {
- require ABSPATH . WPINC . '/class-wp-editor.php';
- }
-
$results = _WP_Editors::wp_link_query( $args );
if ( ! isset( $results ) ) {
@@ -4025,7 +4019,6 @@ function wp_ajax_crop_image() {
switch ( $context ) {
case 'site-icon':
- require_once ABSPATH . 'wp-admin/includes/class-wp-site-icon.php';
$wp_site_icon = new WP_Site_Icon();
// Skip creating a new attachment if the attachment is a Site Icon.
@@ -4176,7 +4169,6 @@ function wp_ajax_install_theme() {
wp_send_json_error( $status );
}
- require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
require_once ABSPATH . 'wp-admin/includes/theme.php';
$api = themes_api(
@@ -4308,8 +4300,6 @@ function wp_ajax_update_theme() {
$status['oldVersion'] = $theme->get( 'Version' );
}
- require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
-
$current = get_site_transient( 'update_themes' );
if ( empty( $current ) ) {
wp_update_themes();
@@ -4469,7 +4459,6 @@ function wp_ajax_install_plugin() {
wp_send_json_error( $status );
}
- require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
require_once ABSPATH . 'wp-admin/includes/plugin-install.php';
$api = plugins_api(
@@ -4641,8 +4630,6 @@ function wp_ajax_update_plugin() {
$status['oldVersion'] = sprintf( __( 'Version %s' ), $plugin_data['Version'] );
}
- require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
-
wp_update_plugins();
$skin = new WP_Ajax_Upgrader_Skin();
@@ -5368,10 +5355,6 @@ function wp_ajax_health_check_dotorg_communication() {
wp_send_json_error();
}
- if ( ! class_exists( 'WP_Site_Health' ) ) {
- require_once ABSPATH . 'wp-admin/includes/class-wp-site-health.php';
- }
-
$site_health = WP_Site_Health::get_instance();
wp_send_json_success( $site_health->get_test_dotorg_communication() );
}
@@ -5401,10 +5384,6 @@ function wp_ajax_health_check_background_updates() {
wp_send_json_error();
}
- if ( ! class_exists( 'WP_Site_Health' ) ) {
- require_once ABSPATH . 'wp-admin/includes/class-wp-site-health.php';
- }
-
$site_health = WP_Site_Health::get_instance();
wp_send_json_success( $site_health->get_test_background_updates() );
}
@@ -5434,10 +5413,6 @@ function wp_ajax_health_check_loopback_requests() {
wp_send_json_error();
}
- if ( ! class_exists( 'WP_Site_Health' ) ) {
- require_once ABSPATH . 'wp-admin/includes/class-wp-site-health.php';
- }
-
$site_health = WP_Site_Health::get_instance();
wp_send_json_success( $site_health->get_test_loopback_requests() );
}
@@ -5484,10 +5459,6 @@ function wp_ajax_health_check_get_sizes() {
wp_send_json_error();
}
- if ( ! class_exists( 'WP_Debug_Data' ) ) {
- require_once ABSPATH . 'wp-admin/includes/class-wp-debug-data.php';
- }
-
$sizes_data = WP_Debug_Data::get_sizes();
$all_sizes = array( 'raw' => 0 );
diff --git a/src/wp-admin/includes/class-ftp.php b/src/wp-admin/includes/class-ftp.php
index 1b29783ffa31a..4b08e3bac7e7c 100644
--- a/src/wp-admin/includes/class-ftp.php
+++ b/src/wp-admin/includes/class-ftp.php
@@ -904,8 +904,6 @@ function PopError(){
$mod_sockets = extension_loaded( 'sockets' );
}
-require_once __DIR__ . "/class-ftp-" . ( $mod_sockets ? "sockets" : "pure" ) . ".php";
-
if ( $mod_sockets ) {
class ftp extends ftp_sockets {}
} else {
diff --git a/src/wp-admin/includes/class-wp-filesystem-ftpsockets.php b/src/wp-admin/includes/class-wp-filesystem-ftpsockets.php
index 9a37d88c116dd..bcea14ab615f7 100644
--- a/src/wp-admin/includes/class-wp-filesystem-ftpsockets.php
+++ b/src/wp-admin/includes/class-wp-filesystem-ftpsockets.php
@@ -32,11 +32,6 @@ public function __construct( $opt = '' ) {
$this->method = 'ftpsockets';
$this->errors = new WP_Error();
- // Check if possible to use ftp functions.
- if ( ! require_once ABSPATH . 'wp-admin/includes/class-ftp.php' ) {
- return;
- }
-
$this->ftp = new ftp();
if ( empty( $opt['port'] ) ) {
diff --git a/src/wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php b/src/wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php
index aa68c84649e2f..06fb55dabe77d 100644
--- a/src/wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php
+++ b/src/wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php
@@ -7,10 +7,6 @@
* @since 4.9.6
*/
-if ( ! class_exists( 'WP_Privacy_Requests_Table' ) ) {
- require_once ABSPATH . 'wp-admin/includes/class-wp-privacy-requests-table.php';
-}
-
/**
* WP_Privacy_Data_Export_Requests_Table class.
*
diff --git a/src/wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php b/src/wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php
index 716535160f12d..3ab7f6f182d3a 100644
--- a/src/wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php
+++ b/src/wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php
@@ -7,10 +7,6 @@
* @since 4.9.6
*/
-if ( ! class_exists( 'WP_Privacy_Requests_Table' ) ) {
- require_once ABSPATH . 'wp-admin/includes/class-wp-privacy-requests-table.php';
-}
-
/**
* WP_Privacy_Data_Removal_Requests_List_Table class.
*
diff --git a/src/wp-admin/includes/class-wp-site-health-auto-updates.php b/src/wp-admin/includes/class-wp-site-health-auto-updates.php
index 581fc44600c5f..7b286128471a0 100644
--- a/src/wp-admin/includes/class-wp-site-health-auto-updates.php
+++ b/src/wp-admin/includes/class-wp-site-health-auto-updates.php
@@ -9,15 +9,6 @@
#[AllowDynamicProperties]
class WP_Site_Health_Auto_Updates {
- /**
- * WP_Site_Health_Auto_Updates constructor.
- *
- * @since 5.2.0
- */
- public function __construct() {
- require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
- }
-
/**
* Runs tests to determine if auto-updates can run.
@@ -135,10 +126,6 @@ public function test_filters_automatic_updater_disabled() {
* @return array|false The test results. False if auto-updates are enabled.
*/
public function test_wp_automatic_updates_disabled() {
- if ( ! class_exists( 'WP_Automatic_Updater' ) ) {
- require_once ABSPATH . 'wp-admin/includes/class-wp-automatic-updater.php';
- }
-
$auto_updates = new WP_Automatic_Updater();
if ( ! $auto_updates->is_disabled() ) {
diff --git a/src/wp-admin/includes/class-wp-site-health.php b/src/wp-admin/includes/class-wp-site-health.php
index b35c595c3cf61..34bd411167e25 100644
--- a/src/wp-admin/includes/class-wp-site-health.php
+++ b/src/wp-admin/includes/class-wp-site-health.php
@@ -1718,10 +1718,6 @@ public function get_test_background_updates() {
'test' => 'background_updates',
);
- if ( ! class_exists( 'WP_Site_Health_Auto_Updates' ) ) {
- require_once ABSPATH . 'wp-admin/includes/class-wp-site-health-auto-updates.php';
- }
-
/*
* Run the auto-update tests in a separate class,
* as there are many considerations to be made.
@@ -2315,6 +2311,77 @@ public function get_test_file_uploads() {
return $result;
}
+ /**
+ * Tests if any of the WordPress Core classes are overridden.
+ *
+ * @since 6.6.0
+ *
+ * @return array
+ */
+ public static function get_test_core_classes_paths() {
+ $overridden_classes = array();
+ /*
+ * Bypass check for WP_Object_Cache.
+ *
+ * It is intended that persistent caching plugins replace the core version
+ * of WP_Object_Cache with their own version so it shouldn't be reported
+ * as an error in site health.
+ */
+ $wp_core_classes = WP_Autoload::CLASSES_PATHS;
+ unset( $wp_core_classes['wp_object_cache'] );
+ foreach ( $wp_core_classes as $class_name => $class_path ) {
+ $default_path = ABSPATH . $class_path;
+
+ /*
+ * Init a Reflection class to get the real path of the class.
+ * This is performed inside an output buffer to avoid any errors
+ * that might be thrown by the ReflectionClass constructor.
+ */
+ ob_start();
+ $reflection = new \ReflectionClass( $class_name );
+ ob_end_clean();
+
+ if ( $default_path !== $reflection->getFileName() ) {
+ $overridden_classes[ $reflection->getName() ] = $reflection->getFileName();
+ }
+ }
+
+ $result = array(
+ 'label' => __( 'All WordPress Core classes can be properly loaded' ),
+ 'status' => 'good',
+ 'badge' => array(
+ 'label' => __( 'Security' ),
+ 'color' => 'blue',
+ ),
+ 'description' => sprintf(
+ '
%s
',
+ __( 'Plugins and Themes should not override the default WordPress Core classes, as that might lead to unexpected side-effects on your site.' )
+ ),
+ 'actions' => '',
+ 'test' => 'core_classes_paths',
+ );
+
+ if ( ! empty( $overridden_classes ) ) {
+ $result['status'] = 'critical';
+ $result['label'] = __( 'WordPress Core classes are being overridden' );
+ $result['description'] .= sprintf(
+ '%s
',
+ __( 'The following WordPress Core classes are being overridden:' )
+ );
+
+ $result['description'] .= '';
+ foreach ( $overridden_classes as $class_name => $class_path ) {
+ $result['description'] .= '';
+ $result['description'] .= '' . esc_html( $class_name ) . ' | ';
+ $result['description'] .= '' . esc_html( $class_path ) . ' | ';
+ $result['description'] .= '
';
+ }
+ $result['description'] .= '
';
+ }
+
+ return $result;
+ }
+
/**
* Tests if the Authorization header has the expected values.
*
@@ -2830,6 +2897,12 @@ public static function get_tests() {
);
}
+ // Check for Core classes being overridden.
+ $tests['direct']['core_classes_paths'] = array(
+ 'label' => __( 'Core classes paths' ),
+ 'test' => 'core_classes_paths',
+ );
+
/**
* Filters which site status tests are run on a site.
*
diff --git a/src/wp-admin/includes/class-wp-upgrader-skins.php b/src/wp-admin/includes/class-wp-upgrader-skins.php
index 636ce1838cdc3..9e2f197c307e6 100644
--- a/src/wp-admin/includes/class-wp-upgrader-skins.php
+++ b/src/wp-admin/includes/class-wp-upgrader-skins.php
@@ -9,36 +9,3 @@
*/
_deprecated_file( basename( __FILE__ ), '4.7.0', 'class-wp-upgrader.php' );
-
-/** WP_Upgrader_Skin class */
-require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader-skin.php';
-
-/** Plugin_Upgrader_Skin class */
-require_once ABSPATH . 'wp-admin/includes/class-plugin-upgrader-skin.php';
-
-/** Theme_Upgrader_Skin class */
-require_once ABSPATH . 'wp-admin/includes/class-theme-upgrader-skin.php';
-
-/** Bulk_Upgrader_Skin class */
-require_once ABSPATH . 'wp-admin/includes/class-bulk-upgrader-skin.php';
-
-/** Bulk_Plugin_Upgrader_Skin class */
-require_once ABSPATH . 'wp-admin/includes/class-bulk-plugin-upgrader-skin.php';
-
-/** Bulk_Theme_Upgrader_Skin class */
-require_once ABSPATH . 'wp-admin/includes/class-bulk-theme-upgrader-skin.php';
-
-/** Plugin_Installer_Skin class */
-require_once ABSPATH . 'wp-admin/includes/class-plugin-installer-skin.php';
-
-/** Theme_Installer_Skin class */
-require_once ABSPATH . 'wp-admin/includes/class-theme-installer-skin.php';
-
-/** Language_Pack_Upgrader_Skin class */
-require_once ABSPATH . 'wp-admin/includes/class-language-pack-upgrader-skin.php';
-
-/** Automatic_Upgrader_Skin class */
-require_once ABSPATH . 'wp-admin/includes/class-automatic-upgrader-skin.php';
-
-/** WP_Ajax_Upgrader_Skin class */
-require_once ABSPATH . 'wp-admin/includes/class-wp-ajax-upgrader-skin.php';
diff --git a/src/wp-admin/includes/class-wp-upgrader.php b/src/wp-admin/includes/class-wp-upgrader.php
index 67996aef3f12a..5c1e837b49660 100644
--- a/src/wp-admin/includes/class-wp-upgrader.php
+++ b/src/wp-admin/includes/class-wp-upgrader.php
@@ -9,39 +9,6 @@
* @since 2.8.0
*/
-/** WP_Upgrader_Skin class */
-require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader-skin.php';
-
-/** Plugin_Upgrader_Skin class */
-require_once ABSPATH . 'wp-admin/includes/class-plugin-upgrader-skin.php';
-
-/** Theme_Upgrader_Skin class */
-require_once ABSPATH . 'wp-admin/includes/class-theme-upgrader-skin.php';
-
-/** Bulk_Upgrader_Skin class */
-require_once ABSPATH . 'wp-admin/includes/class-bulk-upgrader-skin.php';
-
-/** Bulk_Plugin_Upgrader_Skin class */
-require_once ABSPATH . 'wp-admin/includes/class-bulk-plugin-upgrader-skin.php';
-
-/** Bulk_Theme_Upgrader_Skin class */
-require_once ABSPATH . 'wp-admin/includes/class-bulk-theme-upgrader-skin.php';
-
-/** Plugin_Installer_Skin class */
-require_once ABSPATH . 'wp-admin/includes/class-plugin-installer-skin.php';
-
-/** Theme_Installer_Skin class */
-require_once ABSPATH . 'wp-admin/includes/class-theme-installer-skin.php';
-
-/** Language_Pack_Upgrader_Skin class */
-require_once ABSPATH . 'wp-admin/includes/class-language-pack-upgrader-skin.php';
-
-/** Automatic_Upgrader_Skin class */
-require_once ABSPATH . 'wp-admin/includes/class-automatic-upgrader-skin.php';
-
-/** WP_Ajax_Upgrader_Skin class */
-require_once ABSPATH . 'wp-admin/includes/class-wp-ajax-upgrader-skin.php';
-
/**
* Core class used for upgrading/installing a local set of files via
* the Filesystem Abstraction classes from a Zip file.
@@ -1268,21 +1235,3 @@ public function delete_temp_backup( array $temp_backups = array() ) {
return $errors->has_errors() ? $errors : true;
}
}
-
-/** Plugin_Upgrader class */
-require_once ABSPATH . 'wp-admin/includes/class-plugin-upgrader.php';
-
-/** Theme_Upgrader class */
-require_once ABSPATH . 'wp-admin/includes/class-theme-upgrader.php';
-
-/** Language_Pack_Upgrader class */
-require_once ABSPATH . 'wp-admin/includes/class-language-pack-upgrader.php';
-
-/** Core_Upgrader class */
-require_once ABSPATH . 'wp-admin/includes/class-core-upgrader.php';
-
-/** File_Upload_Upgrader class */
-require_once ABSPATH . 'wp-admin/includes/class-file-upload-upgrader.php';
-
-/** WP_Automatic_Updater class */
-require_once ABSPATH . 'wp-admin/includes/class-wp-automatic-updater.php';
diff --git a/src/wp-admin/includes/dashboard.php b/src/wp-admin/includes/dashboard.php
index 427006c03cef9..7209b45bd2fd1 100644
--- a/src/wp-admin/includes/dashboard.php
+++ b/src/wp-admin/includes/dashboard.php
@@ -56,9 +56,6 @@ function wp_dashboard_setup() {
// Site Health.
if ( current_user_can( 'view_site_health_checks' ) && ! is_network_admin() ) {
- if ( ! class_exists( 'WP_Site_Health' ) ) {
- require_once ABSPATH . 'wp-admin/includes/class-wp-site-health.php';
- }
WP_Site_Health::get_instance();
diff --git a/src/wp-admin/includes/deprecated.php b/src/wp-admin/includes/deprecated.php
index f7805b4cc7034..f85c0ee481e09 100644
--- a/src/wp-admin/includes/deprecated.php
+++ b/src/wp-admin/includes/deprecated.php
@@ -769,9 +769,6 @@ function wp_tiny_mce( $teeny = false, $settings = false ) {
static $num = 1;
- if ( ! class_exists( '_WP_Editors', false ) )
- require_once ABSPATH . WPINC . '/class-wp-editor.php';
-
$editor_id = 'content' . $num++;
$set = array(
@@ -1165,7 +1162,6 @@ function wp_update_core($current, $feedback = '') {
if ( !empty($feedback) )
add_filter('update_feedback', $feedback);
- require ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
$upgrader = new Core_Upgrader();
return $upgrader->upgrade($current);
@@ -1188,7 +1184,6 @@ function wp_update_plugin($plugin, $feedback = '') {
if ( !empty($feedback) )
add_filter('update_feedback', $feedback);
- require ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
$upgrader = new Plugin_Upgrader();
return $upgrader->upgrade($plugin);
}
@@ -1210,7 +1205,6 @@ function wp_update_theme($theme, $feedback = '') {
if ( !empty($feedback) )
add_filter('update_feedback', $feedback);
- require ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
$upgrader = new Theme_Upgrader();
return $upgrader->upgrade($theme);
}
diff --git a/src/wp-admin/includes/file.php b/src/wp-admin/includes/file.php
index b1ea3fba1bda2..e41f296d7214b 100644
--- a/src/wp-admin/includes/file.php
+++ b/src/wp-admin/includes/file.php
@@ -1562,8 +1562,6 @@ function wp_zip_file_is_valid( $file ) {
}
// Fall through to PclZip if ZipArchive is not available, or encountered an error opening the file.
- require_once ABSPATH . 'wp-admin/includes/class-pclzip.php';
-
$archive = new PclZip( $file );
$archive_is_valid = is_array( $archive->properties() );
@@ -1858,8 +1856,6 @@ function _unzip_file_pclzip( $file, $to, $needed_dirs = array() ) {
mbstring_binary_safe_encoding();
- require_once ABSPATH . 'wp-admin/includes/class-pclzip.php';
-
$archive = new PclZip( $file );
$archive_files = $archive->extract( PCLZIP_OPT_EXTRACT_AS_STRING );
@@ -2152,8 +2148,6 @@ function move_dir( $from, $to, $overwrite = false ) {
function WP_Filesystem( $args = false, $context = false, $allow_relaxed_file_ownership = false ) { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionNameInvalid
global $wp_filesystem;
- require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-base.php';
-
$method = get_filesystem_method( $args, $context, $allow_relaxed_file_ownership );
if ( ! $method ) {
diff --git a/src/wp-admin/includes/list-table.php b/src/wp-admin/includes/list-table.php
index 1e2c190c80fe9..70208efbe51a3 100644
--- a/src/wp-admin/includes/list-table.php
+++ b/src/wp-admin/includes/list-table.php
@@ -21,34 +21,30 @@
function _get_list_table( $class_name, $args = array() ) {
$core_classes = array(
// Site Admin.
- 'WP_Posts_List_Table' => 'posts',
- 'WP_Media_List_Table' => 'media',
- 'WP_Terms_List_Table' => 'terms',
- 'WP_Users_List_Table' => 'users',
- 'WP_Comments_List_Table' => 'comments',
- 'WP_Post_Comments_List_Table' => array( 'comments', 'post-comments' ),
- 'WP_Links_List_Table' => 'links',
- 'WP_Plugin_Install_List_Table' => 'plugin-install',
- 'WP_Themes_List_Table' => 'themes',
- 'WP_Theme_Install_List_Table' => array( 'themes', 'theme-install' ),
- 'WP_Plugins_List_Table' => 'plugins',
- 'WP_Application_Passwords_List_Table' => 'application-passwords',
+ 'WP_Posts_List_Table',
+ 'WP_Media_List_Table',
+ 'WP_Terms_List_Table',
+ 'WP_Users_List_Table',
+ 'WP_Comments_List_Table',
+ 'WP_Post_Comments_List_Table',
+ 'WP_Links_List_Table',
+ 'WP_Plugin_Install_List_Table',
+ 'WP_Themes_List_Table',
+ 'WP_Theme_Install_List_Table',
+ 'WP_Plugins_List_Table',
+ 'WP_Application_Passwords_List_Table',
// Network Admin.
- 'WP_MS_Sites_List_Table' => 'ms-sites',
- 'WP_MS_Users_List_Table' => 'ms-users',
- 'WP_MS_Themes_List_Table' => 'ms-themes',
+ 'WP_MS_Sites_List_Table',
+ 'WP_MS_Users_List_Table',
+ 'WP_MS_Themes_List_Table',
// Privacy requests tables.
- 'WP_Privacy_Data_Export_Requests_List_Table' => 'privacy-data-export-requests',
- 'WP_Privacy_Data_Removal_Requests_List_Table' => 'privacy-data-removal-requests',
+ 'WP_Privacy_Data_Export_Requests_List_Table',
+ 'WP_Privacy_Data_Removal_Requests_List_Table',
);
- if ( isset( $core_classes[ $class_name ] ) ) {
- foreach ( (array) $core_classes[ $class_name ] as $required ) {
- require_once ABSPATH . 'wp-admin/includes/class-wp-' . $required . '-list-table.php';
- }
-
+ if ( in_array( $class_name, $core_classes ) ) {
if ( isset( $args['screen'] ) ) {
$args['screen'] = convert_to_screen( $args['screen'] );
} elseif ( isset( $GLOBALS['hook_suffix'] ) ) {
diff --git a/src/wp-admin/includes/nav-menu.php b/src/wp-admin/includes/nav-menu.php
index 5ba3276b3aea5..72cae03db5d25 100644
--- a/src/wp-admin/includes/nav-menu.php
+++ b/src/wp-admin/includes/nav-menu.php
@@ -7,12 +7,6 @@
* @since 3.0.0
*/
-/** Walker_Nav_Menu_Edit class */
-require_once ABSPATH . 'wp-admin/includes/class-walker-nav-menu-edit.php';
-
-/** Walker_Nav_Menu_Checklist class */
-require_once ABSPATH . 'wp-admin/includes/class-walker-nav-menu-checklist.php';
-
/**
* Prints the appropriate response to a menu quick search.
*
diff --git a/src/wp-admin/includes/plugin.php b/src/wp-admin/includes/plugin.php
index de1468352b3d9..469fed9db7547 100644
--- a/src/wp-admin/includes/plugin.php
+++ b/src/wp-admin/includes/plugin.php
@@ -2437,11 +2437,6 @@ function wp_add_privacy_policy_content( $plugin_name, $policy_text ) {
);
return;
}
-
- if ( ! class_exists( 'WP_Privacy_Policy_Content' ) ) {
- require_once ABSPATH . 'wp-admin/includes/class-wp-privacy-policy-content.php';
- }
-
WP_Privacy_Policy_Content::add( $plugin_name, $policy_text );
}
diff --git a/src/wp-admin/includes/template.php b/src/wp-admin/includes/template.php
index f78acff4285e6..8296aa29a56c6 100644
--- a/src/wp-admin/includes/template.php
+++ b/src/wp-admin/includes/template.php
@@ -8,12 +8,6 @@
* @subpackage Administration
*/
-/** Walker_Category_Checklist class */
-require_once ABSPATH . 'wp-admin/includes/class-walker-category-checklist.php';
-
-/** WP_Internal_Pointers class */
-require_once ABSPATH . 'wp-admin/includes/class-wp-internal-pointers.php';
-
//
// Category Checklists.
//
diff --git a/src/wp-admin/includes/translation-install.php b/src/wp-admin/includes/translation-install.php
index 67609836b94a2..a53afcf639dd5 100644
--- a/src/wp-admin/includes/translation-install.php
+++ b/src/wp-admin/includes/translation-install.php
@@ -278,7 +278,6 @@ function wp_download_language_pack( $download ) {
}
$translation = (object) $translation;
- require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
$skin = new Automatic_Upgrader_Skin();
$upgrader = new Language_Pack_Upgrader( $skin );
$translation->type = 'core';
@@ -304,7 +303,6 @@ function wp_can_install_language_pack() {
return false;
}
- require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
$skin = new Automatic_Upgrader_Skin();
$upgrader = new Language_Pack_Upgrader( $skin );
$upgrader->init();
diff --git a/src/wp-admin/includes/update-core.php b/src/wp-admin/includes/update-core.php
index 24f22199f3e9e..3b5e3ab1acfcf 100644
--- a/src/wp-admin/includes/update-core.php
+++ b/src/wp-admin/includes/update-core.php
@@ -978,6 +978,9 @@ function update_core( $from, $to ) {
$_old_files = array_merge( $_old_files, array_values( $_old_requests_files ) );
_preload_old_requests_classes_and_interfaces( $to );
+ // Preload Core classes and interfaces to ensure the code is in memory if needed.
+ _preload_core_classes_and_interfaces();
+
/**
* Filters feedback messages displayed during the core update process.
*
@@ -1579,6 +1582,54 @@ function _preload_old_requests_classes_and_interfaces( $to ) {
}
}
+/**
+ * Preloads old classes and interfaces required for updating Core.
+ *
+ * This function preloads the old code into memory before the
+ * upgrade process deletes the files. These files are loaded into
+ * memory via an autoloader, meaning when a class or interface is needed
+ * WordPress Core could attempt to access code. If the file is not there,
+ * a fatal error could occur. If the file was replaced, the new code is not
+ * compatible with the old, resulting in a fatal error.
+ * Preloading ensures the code is in memory before the code is updated.
+ *
+ * @since 6.6.0
+ */
+function _preload_core_classes_and_interfaces() {
+ /*
+ * The classes to be preloaded.
+ * These are lowercased to match the format used in the autoloader.
+ */
+ $preload_classes = array(
+ 'core_upgrader',
+ 'automatic_upgrader_skin',
+ 'wp_upgrader_skin',
+ 'wp_upgrader',
+ 'wp_error',
+ 'wp_filesystem_base',
+ 'wp_filesystem_direct',
+ 'wp_filesystem_ftpext',
+ 'wp_filesystem_ftpsockets',
+ 'wp_filesystem_ssh2',
+ 'wpdb',
+ 'ftp',
+ 'ftp_base',
+ 'ftp_pure',
+ 'ftp_sockets',
+ );
+ foreach ( $preload_classes as $class_name ) {
+ /*
+ * Skip if it's already loaded.
+ * This should trigger the autoloader to load the file.
+ */
+ if ( class_exists( $class_name, true ) ) {
+ continue;
+ }
+ // Load the file.
+ require_once ABSPATH . WP_Autoload::CLASSES_PATHS[ $class_name ];
+ }
+}
+
/**
* Redirect to the About WordPress page after a successful upgrade.
*
diff --git a/src/wp-admin/includes/update.php b/src/wp-admin/includes/update.php
index 629c1be1cc639..50c3c71c25278 100644
--- a/src/wp-admin/includes/update.php
+++ b/src/wp-admin/includes/update.php
@@ -97,8 +97,6 @@ function find_core_auto_update() {
return false;
}
- require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
-
$auto_update = false;
$upgrader = new WP_Automatic_Updater();
@@ -1042,10 +1040,6 @@ function wp_recovery_mode_nag() {
* @return bool True if auto-updates are enabled for `$type`, false otherwise.
*/
function wp_is_auto_update_enabled_for_type( $type ) {
- if ( ! class_exists( 'WP_Automatic_Updater' ) ) {
- require_once ABSPATH . 'wp-admin/includes/class-wp-automatic-updater.php';
- }
-
$updater = new WP_Automatic_Updater();
$enabled = ! $updater->is_disabled();
diff --git a/src/wp-admin/includes/upgrade.php b/src/wp-admin/includes/upgrade.php
index 08d04ae2f147c..93324fc091606 100644
--- a/src/wp-admin/includes/upgrade.php
+++ b/src/wp-admin/includes/upgrade.php
@@ -366,10 +366,6 @@ function wp_install_defaults( $user_id ) {
// Disable by default unless the suggested content is provided.
$privacy_policy_content = get_site_option( 'default_privacy_policy_content' );
} else {
- if ( ! class_exists( 'WP_Privacy_Policy_Content' ) ) {
- require_once ABSPATH . 'wp-admin/includes/class-wp-privacy-policy-content.php';
- }
-
$privacy_policy_content = WP_Privacy_Policy_Content::get_default_content();
}
diff --git a/src/wp-admin/install.php b/src/wp-admin/install.php
index e81331acfc82e..c260b43e9209e 100644
--- a/src/wp-admin/install.php
+++ b/src/wp-admin/install.php
@@ -41,9 +41,6 @@
/** Load WordPress Translation Install API */
require_once ABSPATH . 'wp-admin/includes/translation-install.php';
-/** Load wpdb */
-require_once ABSPATH . WPINC . '/class-wpdb.php';
-
nocache_headers();
$step = isset( $_GET['step'] ) ? (int) $_GET['step'] : 0;
diff --git a/src/wp-admin/load-scripts.php b/src/wp-admin/load-scripts.php
index e4b6a1ee5b918..c456f6beaae26 100644
--- a/src/wp-admin/load-scripts.php
+++ b/src/wp-admin/load-scripts.php
@@ -19,7 +19,11 @@
define( 'ABSPATH', dirname( __DIR__ ) . '/' );
}
-define( 'WPINC', 'wp-includes' );
+if ( ! defined( 'WPINC' ) ) {
+ define( 'WPINC', 'wp-includes' );
+}
+
+require_once ABSPATH . WPINC . '/class-wp-autoload.php';
$protocol = $_SERVER['SERVER_PROTOCOL'];
if ( ! in_array( $protocol, array( 'HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3' ), true ) ) {
diff --git a/src/wp-admin/load-styles.php b/src/wp-admin/load-styles.php
index 083c3832eb8cb..1e84df5712f11 100644
--- a/src/wp-admin/load-styles.php
+++ b/src/wp-admin/load-styles.php
@@ -19,12 +19,15 @@
define( 'ABSPATH', dirname( __DIR__ ) . '/' );
}
-define( 'WPINC', 'wp-includes' );
+if ( ! defined( 'WPINC' ) ) {
+ define( 'WPINC', 'wp-includes' );
+}
define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' );
+require_once ABSPATH . WPINC . '/class-wp-autoload.php';
+
require ABSPATH . 'wp-admin/includes/noop.php';
require ABSPATH . WPINC . '/theme.php';
-require ABSPATH . WPINC . '/class-wp-theme-json-resolver.php';
require ABSPATH . WPINC . '/global-styles-and-settings.php';
require ABSPATH . WPINC . '/script-loader.php';
require ABSPATH . WPINC . '/version.php';
diff --git a/src/wp-admin/options-privacy.php b/src/wp-admin/options-privacy.php
index 92de2ca9b9b68..7e465e791faf2 100644
--- a/src/wp-admin/options-privacy.php
+++ b/src/wp-admin/options-privacy.php
@@ -79,11 +79,6 @@ static function ( $body_class ) {
add_settings_error( 'page_for_privacy_policy', 'page_for_privacy_policy', $privacy_page_updated_message, 'success' );
} elseif ( 'create-privacy-page' === $action ) {
-
- if ( ! class_exists( 'WP_Privacy_Policy_Content' ) ) {
- require_once ABSPATH . 'wp-admin/includes/class-wp-privacy-policy-content.php';
- }
-
$privacy_policy_page_content = WP_Privacy_Policy_Content::get_default_content();
$privacy_policy_page_id = wp_insert_post(
array(
diff --git a/src/wp-admin/privacy-policy-guide.php b/src/wp-admin/privacy-policy-guide.php
index ffff9e437463b..88adc4f5c3453 100644
--- a/src/wp-admin/privacy-policy-guide.php
+++ b/src/wp-admin/privacy-policy-guide.php
@@ -13,10 +13,6 @@
wp_die( __( 'Sorry, you are not allowed to manage privacy options on this site.' ) );
}
-if ( ! class_exists( 'WP_Privacy_Policy_Content' ) ) {
- require_once ABSPATH . 'wp-admin/includes/class-wp-privacy-policy-content.php';
-}
-
// Used in the HTML title tag.
$title = __( 'Privacy Policy Guide' );
diff --git a/src/wp-admin/setup-config.php b/src/wp-admin/setup-config.php
index 2d1ff715d3d23..9dfd59558e862 100644
--- a/src/wp-admin/setup-config.php
+++ b/src/wp-admin/setup-config.php
@@ -30,6 +30,8 @@
define( 'ABSPATH', dirname( __DIR__ ) . '/' );
}
+require_once ABSPATH . 'wp-includes/class-wp-autoload.php';
+
require ABSPATH . 'wp-settings.php';
/** Load WordPress Administration Upgrade API */
diff --git a/src/wp-admin/site-health-info.php b/src/wp-admin/site-health-info.php
index 2f23f8306854d..09a8779da0d6d 100644
--- a/src/wp-admin/site-health-info.php
+++ b/src/wp-admin/site-health-info.php
@@ -10,13 +10,6 @@
die();
}
-if ( ! class_exists( 'WP_Debug_Data' ) ) {
- require_once ABSPATH . 'wp-admin/includes/class-wp-debug-data.php';
-}
-if ( ! class_exists( 'WP_Site_Health' ) ) {
- require_once ABSPATH . 'wp-admin/includes/class-wp-site-health.php';
-}
-
$health_check_site_status = WP_Site_Health::get_instance();
wp_admin_notice(
diff --git a/src/wp-admin/site-health.php b/src/wp-admin/site-health.php
index 0fd7fef07a00a..8d7d2f86227e6 100644
--- a/src/wp-admin/site-health.php
+++ b/src/wp-admin/site-health.php
@@ -51,10 +51,6 @@
wp_enqueue_style( 'site-health' );
wp_enqueue_script( 'site-health' );
-if ( ! class_exists( 'WP_Site_Health' ) ) {
- require_once ABSPATH . 'wp-admin/includes/class-wp-site-health.php';
-}
-
if ( 'update_https' === $action ) {
check_admin_referer( 'wp_update_https' );
diff --git a/src/wp-admin/update-core.php b/src/wp-admin/update-core.php
index b41f7285dcea9..3f8129301a67b 100644
--- a/src/wp-admin/update-core.php
+++ b/src/wp-admin/update-core.php
@@ -326,7 +326,6 @@ function core_auto_updates_settings() {
}
}
- require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
$updater = new WP_Automatic_Updater();
// Defaults:
@@ -845,8 +844,6 @@ function list_translation_updates() {
function do_core_upgrade( $reinstall = false ) {
global $wp_filesystem;
- require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
-
if ( $reinstall ) {
$url = 'update-core.php?action=do-core-reinstall';
} else {
@@ -1276,7 +1273,6 @@ function do_undismiss_core_update() {
check_admin_referer( 'upgrade-translations' );
require_once ABSPATH . 'wp-admin/admin-header.php';
- require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
$url = 'update-core.php?action=do-translation-upgrade';
$nonce = 'upgrade-translations';
diff --git a/src/wp-admin/update.php b/src/wp-admin/update.php
index 090c37cfc4dfe..788ab64de8965 100644
--- a/src/wp-admin/update.php
+++ b/src/wp-admin/update.php
@@ -15,8 +15,6 @@
/** WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';
-require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
-
wp_enqueue_script( 'wp-a11y' );
if ( isset( $_GET['action'] ) ) {
@@ -262,8 +260,6 @@
wp_die( __( 'Sorry, you are not allowed to install themes on this site.' ) );
}
- require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; // For themes_api().
-
check_admin_referer( 'install-theme_' . $theme );
$api = themes_api(
'theme_information',
diff --git a/src/wp-includes/admin-bar.php b/src/wp-includes/admin-bar.php
index 0d7c3b63c70ef..8aa599512021d 100644
--- a/src/wp-includes/admin-bar.php
+++ b/src/wp-includes/admin-bar.php
@@ -27,9 +27,6 @@ function _wp_admin_bar_init() {
return false;
}
- /* Load the admin bar class code ready for instantiation */
- require_once ABSPATH . WPINC . '/class-wp-admin-bar.php';
-
/* Instantiate the admin bar */
/**
diff --git a/src/wp-includes/block-patterns.php b/src/wp-includes/block-patterns.php
index 851898d006a98..94acdd4352b6f 100644
--- a/src/wp-includes/block-patterns.php
+++ b/src/wp-includes/block-patterns.php
@@ -8,6 +8,59 @@
add_theme_support( 'core-block-patterns' );
+/**
+ * Registers a new block pattern.
+ *
+ * @since 5.5.0
+ *
+ * @param string $pattern_name Block pattern name including namespace.
+ * @param array $pattern_properties List of properties for the block pattern.
+ * See WP_Block_Patterns_Registry::register() for accepted arguments.
+ * @return bool True if the pattern was registered with success and false otherwise.
+ */
+function register_block_pattern( $pattern_name, $pattern_properties ) {
+ return WP_Block_Patterns_Registry::get_instance()->register( $pattern_name, $pattern_properties );
+}
+
+/**
+ * Unregisters a block pattern.
+ *
+ * @since 5.5.0
+ *
+ * @param string $pattern_name Block pattern name including namespace.
+ * @return bool True if the pattern was unregistered with success and false otherwise.
+ */
+function unregister_block_pattern( $pattern_name ) {
+ return WP_Block_Patterns_Registry::get_instance()->unregister( $pattern_name );
+}
+
+/**
+ * Registers a new pattern category.
+ *
+ * @since 5.5.0
+ *
+ * @param string $category_name Pattern category name including namespace.
+ * @param array $category_properties List of properties for the block pattern.
+ * See WP_Block_Pattern_Categories_Registry::register() for
+ * accepted arguments.
+ * @return bool True if the pattern category was registered with success and false otherwise.
+ */
+function register_block_pattern_category( $category_name, $category_properties ) {
+ return WP_Block_Pattern_Categories_Registry::get_instance()->register( $category_name, $category_properties );
+}
+
+/**
+ * Unregisters a pattern category.
+ *
+ * @since 5.5.0
+ *
+ * @param string $category_name Pattern category name including namespace.
+ * @return bool True if the pattern category was unregistered with success and false otherwise.
+ */
+function unregister_block_pattern_category( $category_name ) {
+ return WP_Block_Pattern_Categories_Registry::get_instance()->unregister( $category_name );
+}
+
/**
* Registers the core block patterns and categories.
*
diff --git a/src/wp-includes/cache.php b/src/wp-includes/cache.php
index e7fe7b87a85cd..2e06428211e41 100644
--- a/src/wp-includes/cache.php
+++ b/src/wp-includes/cache.php
@@ -8,9 +8,6 @@
* @subpackage Cache
*/
-/** WP_Object_Cache class */
-require_once ABSPATH . WPINC . '/class-wp-object-cache.php';
-
/**
* Sets up Object Cache Global and assigns it.
*
diff --git a/src/wp-includes/class-IXR.php b/src/wp-includes/class-IXR.php
index 0cd72df20e895..c6f9f8d9fefea 100644
--- a/src/wp-includes/class-IXR.php
+++ b/src/wp-includes/class-IXR.php
@@ -38,23 +38,3 @@
* @link http://scripts.incutio.com/xmlrpc/ Site/manual
* @license http://www.opensource.org/licenses/bsd-license.php BSD
*/
-
-require_once ABSPATH . WPINC . '/IXR/class-IXR-server.php';
-
-require_once ABSPATH . WPINC . '/IXR/class-IXR-base64.php';
-
-require_once ABSPATH . WPINC . '/IXR/class-IXR-client.php';
-
-require_once ABSPATH . WPINC . '/IXR/class-IXR-clientmulticall.php';
-
-require_once ABSPATH . WPINC . '/IXR/class-IXR-date.php';
-
-require_once ABSPATH . WPINC . '/IXR/class-IXR-error.php';
-
-require_once ABSPATH . WPINC . '/IXR/class-IXR-introspectionserver.php';
-
-require_once ABSPATH . WPINC . '/IXR/class-IXR-message.php';
-
-require_once ABSPATH . WPINC . '/IXR/class-IXR-request.php';
-
-require_once ABSPATH . WPINC . '/IXR/class-IXR-value.php';
\ No newline at end of file
diff --git a/src/wp-includes/class-feed.php b/src/wp-includes/class-feed.php
index 9a4772dc7590f..c6a320640ed3d 100644
--- a/src/wp-includes/class-feed.php
+++ b/src/wp-includes/class-feed.php
@@ -8,12 +8,3 @@
*/
_deprecated_file( basename( __FILE__ ), '4.7.0', 'fetch_feed()' );
-
-if ( ! class_exists( 'SimplePie', false ) ) {
- require_once ABSPATH . WPINC . '/class-simplepie.php';
-}
-
-require_once ABSPATH . WPINC . '/class-wp-feed-cache.php';
-require_once ABSPATH . WPINC . '/class-wp-feed-cache-transient.php';
-require_once ABSPATH . WPINC . '/class-wp-simplepie-file.php';
-require_once ABSPATH . WPINC . '/class-wp-simplepie-sanitize-kses.php';
diff --git a/src/wp-includes/class-http.php b/src/wp-includes/class-http.php
index df43f11717840..91c387d6b1389 100644
--- a/src/wp-includes/class-http.php
+++ b/src/wp-includes/class-http.php
@@ -9,6 +9,3 @@
*/
_deprecated_file( basename( __FILE__ ), '5.9.0', WPINC . '/class-wp-http.php' );
-
-/** WP_Http class */
-require_once ABSPATH . WPINC . '/class-wp-http.php';
diff --git a/src/wp-includes/class-oembed.php b/src/wp-includes/class-oembed.php
index c7ff40d1cc743..229ac76840369 100644
--- a/src/wp-includes/class-oembed.php
+++ b/src/wp-includes/class-oembed.php
@@ -10,6 +10,3 @@
*/
_deprecated_file( basename( __FILE__ ), '5.3.0', WPINC . '/class-wp-oembed.php' );
-
-/** WP_oEmbed class */
-require_once ABSPATH . WPINC . '/class-wp-oembed.php';
diff --git a/src/wp-includes/class-wp-autoload.php b/src/wp-includes/class-wp-autoload.php
new file mode 100644
index 0000000000000..8483fd2b3240d
--- /dev/null
+++ b/src/wp-includes/class-wp-autoload.php
@@ -0,0 +1,509 @@
+ 'wp-includes/class-phpass.php',
+ 'pop3' => 'wp-includes/class-pop3.php',
+ 'services_json' => 'wp-includes/class-json.php',
+ 'services_json_error' => 'wp-includes/class-json.php',
+ 'walker_categorydropdown' => 'wp-includes/class-walker-category-dropdown.php',
+ 'walker_category' => 'wp-includes/class-walker-category.php',
+ 'walker_comment' => 'wp-includes/class-walker-comment.php',
+ 'walker_nav_menu' => 'wp-includes/class-walker-nav-menu.php',
+ 'walker_pagedropdown' => 'wp-includes/class-walker-page-dropdown.php',
+ 'walker_page' => 'wp-includes/class-walker-page.php',
+ 'wp_admin_bar' => 'wp-includes/class-wp-admin-bar.php',
+ 'wp_ajax_response' => 'wp-includes/class-wp-ajax-response.php',
+ 'wp_application_passwords' => 'wp-includes/class-wp-application-passwords.php',
+ 'wp_block_bindings_registry' => 'wp-includes/class-wp-block-bindings-registry.php',
+ 'wp_block_bindings_source' => 'wp-includes/class-wp-block-bindings-source.php',
+ 'wp_block_editor_context' => 'wp-includes/class-wp-block-editor-context.php',
+ 'wp_block_list' => 'wp-includes/class-wp-block-list.php',
+ 'wp_block_parser_block' => 'wp-includes/class-wp-block-parser-block.php',
+ 'wp_block_parser_frame' => 'wp-includes/class-wp-block-parser-frame.php',
+ 'wp_block_parser' => 'wp-includes/class-wp-block-parser.php',
+ 'wp_block_pattern_categories_registry' => 'wp-includes/class-wp-block-pattern-categories-registry.php',
+ 'wp_block_patterns_registry' => 'wp-includes/class-wp-block-patterns-registry.php',
+ 'wp_block_styles_registry' => 'wp-includes/class-wp-block-styles-registry.php',
+ 'wp_block_supports' => 'wp-includes/class-wp-block-supports.php',
+ 'wp_block_template' => 'wp-includes/class-wp-block-template.php',
+ 'wp_block_templates_registry' => 'wp-includes/class-wp-block-templates-registry.php',
+ 'wp_block_type_registry' => 'wp-includes/class-wp-block-type-registry.php',
+ 'wp_block_type' => 'wp-includes/class-wp-block-type.php',
+ 'wp_block' => 'wp-includes/class-wp-block.php',
+ 'wp_classic_to_block_menu_converter' => 'wp-includes/class-wp-classic-to-block-menu-converter.php',
+ 'wp_comment_query' => 'wp-includes/class-wp-comment-query.php',
+ 'wp_comment' => 'wp-includes/class-wp-comment.php',
+ 'wp_customize_control' => 'wp-includes/class-wp-customize-control.php',
+ 'wp_customize_manager' => 'wp-includes/class-wp-customize-manager.php',
+ 'wp_customize_nav_menus' => 'wp-includes/class-wp-customize-nav-menus.php',
+ 'wp_customize_panel' => 'wp-includes/class-wp-customize-panel.php',
+ 'wp_customize_section' => 'wp-includes/class-wp-customize-section.php',
+ 'wp_customize_setting' => 'wp-includes/class-wp-customize-setting.php',
+ 'wp_customize_widgets' => 'wp-includes/class-wp-customize-widgets.php',
+ 'wp_date_query' => 'wp-includes/class-wp-date-query.php',
+ 'wp_dependencies' => 'wp-includes/class-wp-dependencies.php',
+ '_wp_dependency' => 'wp-includes/class-wp-dependency.php',
+ 'wp_duotone' => 'wp-includes/class-wp-duotone.php',
+ '_wp_editors' => 'wp-includes/class-wp-editor.php',
+ 'wp_embed' => 'wp-includes/class-wp-embed.php',
+ 'wp_error' => 'wp-includes/class-wp-error.php',
+ 'wp_fatal_error_handler' => 'wp-includes/class-wp-fatal-error-handler.php',
+ 'wp_feed_cache_transient' => 'wp-includes/class-wp-feed-cache-transient.php',
+ 'wp_feed_cache' => 'wp-includes/class-wp-feed-cache.php',
+ 'wp_hook' => 'wp-includes/class-wp-hook.php',
+ 'wp_http_cookie' => 'wp-includes/class-wp-http-cookie.php',
+ 'wp_http_curl' => 'wp-includes/class-wp-http-curl.php',
+ 'wp_http_encoding' => 'wp-includes/class-wp-http-encoding.php',
+ 'wp_http_ixr_client' => 'wp-includes/class-wp-http-ixr-client.php',
+ 'wp_http_proxy' => 'wp-includes/class-wp-http-proxy.php',
+ 'wp_http_requests_hooks' => 'wp-includes/class-wp-http-requests-hooks.php',
+ 'wp_http_requests_response' => 'wp-includes/class-wp-http-requests-response.php',
+ 'wp_http_response' => 'wp-includes/class-wp-http-response.php',
+ 'wp_http_streams' => 'wp-includes/class-wp-http-streams.php',
+ 'wp_http_fsockopen' => 'wp-includes/class-wp-http-streams.php',
+ 'wp_http' => 'wp-includes/class-wp-http.php',
+ 'wp_image_editor_gd' => 'wp-includes/class-wp-image-editor-gd.php',
+ 'wp_image_editor_imagick' => 'wp-includes/class-wp-image-editor-imagick.php',
+ 'wp_image_editor' => 'wp-includes/class-wp-image-editor.php',
+ 'wp_list_util' => 'wp-includes/class-wp-list-util.php',
+ 'wp_locale_switcher' => 'wp-includes/class-wp-locale-switcher.php',
+ 'wp_locale' => 'wp-includes/class-wp-locale.php',
+ 'wp_matchesmapregex' => 'wp-includes/class-wp-matchesmapregex.php',
+ 'wp_meta_query' => 'wp-includes/class-wp-meta-query.php',
+ 'wp_metadata_lazyloader' => 'wp-includes/class-wp-metadata-lazyloader.php',
+ 'wp_navigation_fallback' => 'wp-includes/class-wp-navigation-fallback.php',
+ 'wp_network_query' => 'wp-includes/class-wp-network-query.php',
+ 'wp_network' => 'wp-includes/class-wp-network.php',
+ 'wp_object_cache' => 'wp-includes/class-wp-object-cache.php',
+ 'wp_oembed_controller' => 'wp-includes/class-wp-oembed-controller.php',
+ 'wp_oembed' => 'wp-includes/class-wp-oembed.php',
+ 'wp_paused_extensions_storage' => 'wp-includes/class-wp-paused-extensions-storage.php',
+ 'wp_plugin_dependencies' => 'wp-includes/class-wp-plugin-dependencies.php',
+ 'wp_post_type' => 'wp-includes/class-wp-post-type.php',
+ 'wp_post' => 'wp-includes/class-wp-post.php',
+ 'wp_query' => 'wp-includes/class-wp-query.php',
+ 'wp_recovery_mode_cookie_service' => 'wp-includes/class-wp-recovery-mode-cookie-service.php',
+ 'wp_recovery_mode_email_service' => 'wp-includes/class-wp-recovery-mode-email-service.php',
+ 'wp_recovery_mode_key_service' => 'wp-includes/class-wp-recovery-mode-key-service.php',
+ 'wp_recovery_mode_link_service' => 'wp-includes/class-wp-recovery-mode-link-service.php',
+ 'wp_recovery_mode' => 'wp-includes/class-wp-recovery-mode.php',
+ 'wp_rewrite' => 'wp-includes/class-wp-rewrite.php',
+ 'wp_role' => 'wp-includes/class-wp-role.php',
+ 'wp_roles' => 'wp-includes/class-wp-roles.php',
+ 'wp_script_modules' => 'wp-includes/class-wp-script-modules.php',
+ 'wp_scripts' => 'wp-includes/class-wp-scripts.php',
+ 'wp_session_tokens' => 'wp-includes/class-wp-session-tokens.php',
+ 'wp_simplepie_file' => 'wp-includes/class-wp-simplepie-file.php',
+ 'wp_simplepie_sanitize_kses' => 'wp-includes/class-wp-simplepie-sanitize-kses.php',
+ 'wp_site_query' => 'wp-includes/class-wp-site-query.php',
+ 'wp_site' => 'wp-includes/class-wp-site.php',
+ 'wp_styles' => 'wp-includes/class-wp-styles.php',
+ 'wp_tax_query' => 'wp-includes/class-wp-tax-query.php',
+ 'wp_taxonomy' => 'wp-includes/class-wp-taxonomy.php',
+ 'wp_term_query' => 'wp-includes/class-wp-term-query.php',
+ 'wp_term' => 'wp-includes/class-wp-term.php',
+ 'wp_text_diff_renderer_inline' => 'wp-includes/class-wp-text-diff-renderer-inline.php',
+ 'wp_text_diff_renderer_table' => 'wp-includes/class-wp-text-diff-renderer-table.php',
+ 'wp_textdomain_registry' => 'wp-includes/class-wp-textdomain-registry.php',
+ 'wp_theme_json_data' => 'wp-includes/class-wp-theme-json-data.php',
+ 'wp_theme_json_resolver' => 'wp-includes/class-wp-theme-json-resolver.php',
+ 'wp_theme_json_schema' => 'wp-includes/class-wp-theme-json-schema.php',
+ 'wp_theme_json' => 'wp-includes/class-wp-theme-json.php',
+ 'wp_theme' => 'wp-includes/class-wp-theme.php',
+ 'wp_token_map' => 'wp-includes/class-wp-token-map.php',
+ 'wp_user_meta_session_tokens' => 'wp-includes/class-wp-user-meta-session-tokens.php',
+ 'wp_user_query' => 'wp-includes/class-wp-user-query.php',
+ 'wp_user_request' => 'wp-includes/class-wp-user-request.php',
+ 'wp_user' => 'wp-includes/class-wp-user.php',
+ 'walker' => 'wp-includes/class-wp-walker.php',
+ 'wp_widget_factory' => 'wp-includes/class-wp-widget-factory.php',
+ 'wp_widget' => 'wp-includes/class-wp-widget.php',
+ 'wp_xmlrpc_server' => 'wp-includes/class-wp-xmlrpc-server.php',
+ 'wp' => 'wp-includes/class-wp.php',
+ 'wpdb' => 'wp-includes/class-wpdb.php', // Defines some constants.
+
+ // Classes in the wp-includes/fonts folder.
+ 'wp_font_collection' => 'wp-includes/fonts/class-wp-font-collection.php',
+ 'wp_font_face_resolver' => 'wp-includes/fonts/class-wp-font-face-resolver.php',
+ 'wp_font_face' => 'wp-includes/fonts/class-wp-font-face.php',
+ 'wp_font_library' => 'wp-includes/fonts/class-wp-font-library.php',
+ 'wp_font_utils' => 'wp-includes/fonts/class-wp-font-utils.php',
+
+ // Classes in the wp-includes/html-api/ folder.
+ 'wp_html_active_formatting_elements' => 'wp-includes/html-api/class-wp-html-active-formatting-elements.php',
+ 'wp_html_attribute_token' => 'wp-includes/html-api/class-wp-html-attribute-token.php',
+ 'wp_html_decoder' => 'wp-includes/html-api/class-wp-html-decoder.php',
+ 'wp_html_doctype_info' => 'wp-includes/html-api/class-wp-html-doctype-info.php',
+ 'wp_html_open_elements' => 'wp-includes/html-api/class-wp-html-open-elements.php',
+ 'wp_html_processor_state' => 'wp-includes/html-api/class-wp-html-processor-state.php',
+ 'wp_html_processor' => 'wp-includes/html-api/class-wp-html-processor.php',
+ 'wp_html_span' => 'wp-includes/html-api/class-wp-html-span.php',
+ 'wp_html_stack_event' => 'wp-includes/html-api/class-wp-html-stack-event.php',
+ 'wp_html_tag_processor' => 'wp-includes/html-api/class-wp-html-tag-processor.php',
+ 'wp_html_text_replacement' => 'wp-includes/html-api/class-wp-html-text-replacement.php',
+ 'wp_html_token' => 'wp-includes/html-api/class-wp-html-token.php',
+ 'wp_html_unsupported_exception' => 'wp-includes/html-api/class-wp-html-unsupported-exception.php',
+
+ // Classes in the wp-includes/interactivity-api folder.
+ 'wp_interactivity_api_directives_processor' => 'wp-includes/interactivity-api/class-wp-interactivity-api-directives-processor.php',
+ 'wp_interactivity_api' => 'wp-includes/interactivity-api/class-wp-interactivity-api.php',
+
+ // Classes in the wp-includes/customize/ folder.
+ 'wp_customize_background_image_control' => 'wp-includes/customize/class-wp-customize-background-image-control.php',
+ 'wp_customize_background_image_setting' => 'wp-includes/customize/class-wp-customize-background-image-setting.php',
+ 'wp_customize_background_position_control' => 'wp-includes/customize/class-wp-customize-background-position-control.php',
+ 'wp_customize_code_editor_control' => 'wp-includes/customize/class-wp-customize-code-editor-control.php',
+ 'wp_customize_color_control' => 'wp-includes/customize/class-wp-customize-color-control.php',
+ 'wp_customize_cropped_image_control' => 'wp-includes/customize/class-wp-customize-cropped-image-control.php',
+ 'wp_customize_custom_css_setting' => 'wp-includes/customize/class-wp-customize-custom-css-setting.php',
+ 'wp_customize_date_time_control' => 'wp-includes/customize/class-wp-customize-date-time-control.php',
+ 'wp_customize_filter_setting' => 'wp-includes/customize/class-wp-customize-filter-setting.php',
+ 'wp_customize_header_image_control' => 'wp-includes/customize/class-wp-customize-header-image-control.php',
+ 'wp_customize_header_image_setting' => 'wp-includes/customize/class-wp-customize-header-image-setting.php',
+ 'wp_customize_image_control' => 'wp-includes/customize/class-wp-customize-image-control.php',
+ 'wp_customize_media_control' => 'wp-includes/customize/class-wp-customize-media-control.php',
+ 'wp_customize_nav_menu_auto_add_control' => 'wp-includes/customize/class-wp-customize-nav-menu-auto-add-control.php',
+ 'wp_customize_nav_menu_control' => 'wp-includes/customize/class-wp-customize-nav-menu-control.php',
+ 'wp_customize_nav_menu_item_control' => 'wp-includes/customize/class-wp-customize-nav-menu-item-control.php',
+ 'wp_customize_nav_menu_item_setting' => 'wp-includes/customize/class-wp-customize-nav-menu-item-setting.php',
+ 'wp_customize_nav_menu_location_control' => 'wp-includes/customize/class-wp-customize-nav-menu-location-control.php',
+ 'wp_customize_nav_menu_locations_control' => 'wp-includes/customize/class-wp-customize-nav-menu-locations-control.php',
+ 'wp_customize_nav_menu_name_control' => 'wp-includes/customize/class-wp-customize-nav-menu-name-control.php',
+ 'wp_customize_nav_menu_section' => 'wp-includes/customize/class-wp-customize-nav-menu-section.php',
+ 'wp_customize_nav_menu_setting' => 'wp-includes/customize/class-wp-customize-nav-menu-setting.php',
+ 'wp_customize_nav_menus_panel' => 'wp-includes/customize/class-wp-customize-nav-menus-panel.php',
+ 'wp_customize_new_menu_control' => 'wp-includes/customize/class-wp-customize-new-menu-control.php',
+ 'wp_customize_new_menu_section' => 'wp-includes/customize/class-wp-customize-new-menu-section.php',
+ 'wp_customize_partial' => 'wp-includes/customize/class-wp-customize-partial.php',
+ 'wp_customize_selective_refresh' => 'wp-includes/customize/class-wp-customize-selective-refresh.php',
+ 'wp_customize_sidebar_section' => 'wp-includes/customize/class-wp-customize-sidebar-section.php',
+ 'wp_customize_site_icon_control' => 'wp-includes/customize/class-wp-customize-site-icon-control.php',
+ 'wp_customize_theme_control' => 'wp-includes/customize/class-wp-customize-theme-control.php',
+ 'wp_customize_themes_panel' => 'wp-includes/customize/class-wp-customize-themes-panel.php',
+ 'wp_customize_themes_section' => 'wp-includes/customize/class-wp-customize-themes-section.php',
+ 'wp_customize_upload_control' => 'wp-includes/customize/class-wp-customize-upload-control.php',
+ 'wp_sidebar_block_editor_control' => 'wp-includes/customize/class-wp-sidebar-block-editor-control.php',
+ 'wp_widget_area_customize_control' => 'wp-includes/customize/class-wp-widget-area-customize-control.php',
+ 'wp_widget_form_customize_control' => 'wp-includes/customize/class-wp-widget-form-customize-control.php',
+
+ // Classes in the wp-includes/IXR folder.
+ 'ixr_base64' => 'wp-includes/IXR/class-IXR-base64.php',
+ 'ixr_client' => 'wp-includes/IXR/class-IXR-client.php',
+ 'ixr_clientmulticall' => 'wp-includes/IXR/class-IXR-clientmulticall.php',
+ 'ixr_date' => 'wp-includes/IXR/class-IXR-date.php',
+ 'ixr_error' => 'wp-includes/IXR/class-IXR-error.php',
+ 'ixr_introspectionserver' => 'wp-includes/IXR/class-IXR-introspectionserver.php',
+ 'ixr_message' => 'wp-includes/IXR/class-IXR-message.php',
+ 'ixr_request' => 'wp-includes/IXR/class-IXR-request.php',
+ 'ixr_server' => 'wp-includes/IXR/class-IXR-server.php',
+ 'ixr_value' => 'wp-includes/IXR/class-IXR-value.php',
+
+ // Classes in the wp-includes/l10n folder.
+ 'wp_translation_controller' => 'wp-includes/l10n/class-wp-translation-controller.php',
+ 'wp_translation_file_mo' => 'wp-includes/l10n/class-wp-translation-file-mo.php',
+ 'wp_translation_file_php' => 'wp-includes/l10n/class-wp-translation-file-php.php',
+ 'wp_translation_file' => 'wp-includes/l10n/class-wp-translation-file.php',
+ 'wp_translations' => 'wp-includes/l10n/class-wp-translations.php',
+
+ // Classes in the wp-includes/pomo folder.
+ 'translation_entry' => 'wp-includes/pomo/entry.php',
+ 'mo' => 'wp-includes/pomo/mo.php',
+ 'plural_forms' => 'wp-includes/pomo/plural-forms.php',
+ 'po' => 'wp-includes/pomo/po.php',
+ 'pomo_reader' => 'wp-includes/pomo/streams.php',
+ 'pomo_filereader' => 'wp-includes/pomo/streams.php',
+ 'pomo_stringreader' => 'wp-includes/pomo/streams.php',
+ 'pomo_cachedfilereader' => 'wp-includes/pomo/streams.php',
+ 'pomo_cachedintfilereader' => 'wp-includes/pomo/streams.php',
+ 'translations' => 'wp-includes/pomo/translations.php',
+ 'gettext_translations' => 'wp-includes/pomo/translations.php',
+ 'noop_translations' => 'wp-includes/pomo/translations.php',
+
+ // Classes in the wp-includes/Text folder.
+ 'text_diff' => 'wp-includes/Text/Diff.php',
+ 'text_diff_engine_native' => 'wp-includes/Text/Diff/Engine/native.php',
+ 'text_diff_engine_shell' => 'wp-includes/Text/Diff/Engine/shell.php',
+ 'text_diff_engine_string' => 'wp-includes/Text/Diff/Engine/string.php',
+ 'text_diff_engine_xdiff' => 'wp-includes/Text/Diff/Engine/xdiff.php',
+ 'text_diff_renderer_inline' => 'wp-includes/Text/Diff/Renderer/inline.php',
+ 'text_diff_renderer' => 'wp-includes/Text/Diff/Renderer.php',
+
+ // Classes in the wp-includes/rest-api folder.
+ 'wp_rest_application_passwords_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-application-passwords-controller.php',
+ 'wp_rest_attachments_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php',
+ 'wp_rest_autosaves_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-autosaves-controller.php',
+ 'wp_rest_block_directory_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-block-directory-controller.php',
+ 'wp_rest_block_pattern_categories_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-block-pattern-categories-controller.php',
+ 'wp_rest_block_patterns_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-block-patterns-controller.php',
+ 'wp_rest_block_renderer_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-block-renderer-controller.php',
+ 'wp_rest_block_types_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-block-types-controller.php',
+ 'wp_rest_blocks_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-blocks-controller.php',
+ 'wp_rest_comments_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php',
+ 'wp_rest_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-controller.php',
+ 'wp_rest_edit_site_export_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-edit-site-export-controller.php',
+ 'wp_rest_font_collections_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-font-collections-controller.php',
+ 'wp_rest_font_faces_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-font-faces-controller.php',
+ 'wp_rest_font_families_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-font-families-controller.php',
+ 'wp_rest_global_styles_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-global-styles-controller.php',
+ 'wp_rest_global_styles_revisions_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-global-styles-revisions-controller.php',
+ 'wp_rest_menu_items_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php',
+ 'wp_rest_menu_locations_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-menu-locations-controller.php',
+ 'wp_rest_menus_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-menus-controller.php',
+ 'wp_rest_navigation_fallback_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-navigation-fallback-controller.php',
+ 'wp_rest_pattern_directory_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-pattern-directory-controller.php',
+ 'wp_rest_plugins_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-plugins-controller.php',
+ 'wp_rest_post_statuses_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php',
+ 'wp_rest_post_types_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php',
+ 'wp_rest_posts_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php',
+ 'wp_rest_revisions_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php',
+ 'wp_rest_search_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-search-controller.php',
+ 'wp_rest_settings_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-settings-controller.php',
+ 'wp_rest_sidebars_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-sidebars-controller.php',
+ 'wp_rest_site_health_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-site-health-controller.php',
+ 'wp_rest_taxonomies_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php',
+ 'wp_rest_template_autosaves_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-template-autosaves-controller.php',
+ 'wp_rest_template_revisions_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-template-revisions-controller.php',
+ 'wp_rest_templates_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-templates-controller.php',
+ 'wp_rest_terms_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php',
+ 'wp_rest_themes_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-themes-controller.php',
+ 'wp_rest_url_details_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-url-details-controller.php',
+ 'wp_rest_users_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php',
+ 'wp_rest_widget_types_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-widget-types-controller.php',
+ 'wp_rest_widgets_controller' => 'wp-includes/rest-api/endpoints/class-wp-rest-widgets-controller.php',
+ 'wp_rest_comment_meta_fields' => 'wp-includes/rest-api/fields/class-wp-rest-comment-meta-fields.php',
+ 'wp_rest_meta_fields' => 'wp-includes/rest-api/fields/class-wp-rest-meta-fields.php',
+ 'wp_rest_post_meta_fields' => 'wp-includes/rest-api/fields/class-wp-rest-post-meta-fields.php',
+ 'wp_rest_term_meta_fields' => 'wp-includes/rest-api/fields/class-wp-rest-term-meta-fields.php',
+ 'wp_rest_user_meta_fields' => 'wp-includes/rest-api/fields/class-wp-rest-user-meta-fields.php',
+ 'wp_rest_post_format_search_handler' => 'wp-includes/rest-api/search/class-wp-rest-post-format-search-handler.php',
+ 'wp_rest_post_search_handler' => 'wp-includes/rest-api/search/class-wp-rest-post-search-handler.php',
+ 'wp_rest_search_handler' => 'wp-includes/rest-api/search/class-wp-rest-search-handler.php',
+ 'wp_rest_term_search_handler' => 'wp-includes/rest-api/search/class-wp-rest-term-search-handler.php',
+ 'wp_rest_request' => 'wp-includes/rest-api/class-wp-rest-request.php',
+ 'wp_rest_response' => 'wp-includes/rest-api/class-wp-rest-response.php',
+ 'wp_rest_server' => 'wp-includes/rest-api/class-wp-rest-server.php',
+
+ // Classes in wp-includes/sitemaps.
+ 'wp_sitemaps_posts' => 'wp-includes/sitemaps/providers/class-wp-sitemaps-posts.php',
+ 'wp_sitemaps_taxonomies' => 'wp-includes/sitemaps/providers/class-wp-sitemaps-taxonomies.php',
+ 'wp_sitemaps_users' => 'wp-includes/sitemaps/providers/class-wp-sitemaps-users.php',
+ 'wp_sitemaps_index' => 'wp-includes/sitemaps/class-wp-sitemaps-index.php',
+ 'wp_sitemaps_provider' => 'wp-includes/sitemaps/class-wp-sitemaps-provider.php',
+ 'wp_sitemaps_registry' => 'wp-includes/sitemaps/class-wp-sitemaps-registry.php',
+ 'wp_sitemaps_renderer' => 'wp-includes/sitemaps/class-wp-sitemaps-renderer.php',
+ 'wp_sitemaps_stylesheet' => 'wp-includes/sitemaps/class-wp-sitemaps-stylesheet.php',
+ 'wp_sitemaps' => 'wp-includes/sitemaps/class-wp-sitemaps.php',
+
+ // Classes in wp-includes/style-engine.
+ 'wp_style_engine_css_declarations' => 'wp-includes/style-engine/class-wp-style-engine-css-declarations.php',
+ 'wp_style_engine_css_rule' => 'wp-includes/style-engine/class-wp-style-engine-css-rule.php',
+ 'wp_style_engine_css_rules_store' => 'wp-includes/style-engine/class-wp-style-engine-css-rules-store.php',
+ 'wp_style_engine_processor' => 'wp-includes/style-engine/class-wp-style-engine-processor.php',
+ 'wp_style_engine' => 'wp-includes/style-engine/class-wp-style-engine.php',
+
+ // Classes in wp-includes/widgets.
+ 'wp_nav_menu_widget' => 'wp-includes/widgets/class-wp-nav-menu-widget.php',
+ 'wp_widget_archives' => 'wp-includes/widgets/class-wp-widget-archives.php',
+ 'wp_widget_block' => 'wp-includes/widgets/class-wp-widget-block.php',
+ 'wp_widget_calendar' => 'wp-includes/widgets/class-wp-widget-calendar.php',
+ 'wp_widget_categories' => 'wp-includes/widgets/class-wp-widget-categories.php',
+ 'wp_widget_custom_html' => 'wp-includes/widgets/class-wp-widget-custom-html.php',
+ 'wp_widget_links' => 'wp-includes/widgets/class-wp-widget-links.php',
+ 'wp_widget_media_audio' => 'wp-includes/widgets/class-wp-widget-media-audio.php',
+ 'wp_widget_media_gallery' => 'wp-includes/widgets/class-wp-widget-media-gallery.php',
+ 'wp_widget_media_image' => 'wp-includes/widgets/class-wp-widget-media-image.php',
+ 'wp_widget_media_video' => 'wp-includes/widgets/class-wp-widget-media-video.php',
+ 'wp_widget_media' => 'wp-includes/widgets/class-wp-widget-media.php',
+ 'wp_widget_meta' => 'wp-includes/widgets/class-wp-widget-meta.php',
+ 'wp_widget_pages' => 'wp-includes/widgets/class-wp-widget-pages.php',
+ 'wp_widget_recent_comments' => 'wp-includes/widgets/class-wp-widget-recent-comments.php',
+ 'wp_widget_recent_posts' => 'wp-includes/widgets/class-wp-widget-recent-posts.php',
+ 'wp_widget_rss' => 'wp-includes/widgets/class-wp-widget-rss.php',
+ 'wp_widget_search' => 'wp-includes/widgets/class-wp-widget-search.php',
+ 'wp_widget_tag_cloud' => 'wp-includes/widgets/class-wp-widget-tag-cloud.php',
+ 'wp_widget_text' => 'wp-includes/widgets/class-wp-widget-text.php',
+
+ // Classes in wp-admin/includes.
+ 'automatic_upgrader_skin' => 'wp-admin/includes/class-automatic-upgrader-skin.php',
+ 'bulk_plugin_upgrader_skin' => 'wp-admin/includes/class-bulk-plugin-upgrader-skin.php',
+ 'bulk_theme_upgrader_skin' => 'wp-admin/includes/class-bulk-theme-upgrader-skin.php',
+ 'bulk_upgrader_skin' => 'wp-admin/includes/class-bulk-upgrader-skin.php',
+ 'core_upgrader' => 'wp-admin/includes/class-core-upgrader.php',
+ 'custom_background' => 'wp-admin/includes/class-custom-background.php',
+ 'custom_image_header' => 'wp-admin/includes/class-custom-image-header.php',
+ 'file_upload_upgrader' => 'wp-admin/includes/class-file-upload-upgrader.php',
+ 'ftp' => 'wp-admin/includes/class-ftp.php',
+ 'ftp_base' => 'wp-admin/includes/class-ftp.php',
+ 'ftp_pure' => 'wp-admin/includes/class-ftp-pure.php',
+ 'ftp_sockets' => 'wp-admin/includes/class-ftp-sockets.php',
+ 'language_pack_upgrader_skin' => 'wp-admin/includes/class-language-pack-upgrader-skin.php',
+ 'language_pack_upgrader' => 'wp-admin/includes/class-language-pack-upgrader.php',
+ 'pclzip' => 'wp-admin/includes/class-pclzip.php',
+ 'plugin_installer_skin' => 'wp-admin/includes/class-plugin-installer-skin.php',
+ 'plugin_upgrader_skin' => 'wp-admin/includes/class-plugin-upgrader-skin.php',
+ 'plugin_upgrader' => 'wp-admin/includes/class-plugin-upgrader.php',
+ 'theme_installer_skin' => 'wp-admin/includes/class-theme-installer-skin.php',
+ 'theme_upgrader_skin' => 'wp-admin/includes/class-theme-upgrader-skin.php',
+ 'theme_upgrader' => 'wp-admin/includes/class-theme-upgrader.php',
+ 'walker_category_checklist' => 'wp-admin/includes/class-walker-category-checklist.php',
+ 'walker_nav_menu_checklist' => 'wp-admin/includes/class-walker-nav-menu-checklist.php',
+ 'walker_nav_menu_edit' => 'wp-admin/includes/class-walker-nav-menu-edit.php',
+ 'wp_ajax_upgrader_skin' => 'wp-admin/includes/class-wp-ajax-upgrader-skin.php',
+ 'wp_application_passwords_list_table' => 'wp-admin/includes/class-wp-application-passwords-list-table.php',
+ 'wp_automatic_updater' => 'wp-admin/includes/class-wp-automatic-updater.php',
+ 'wp_comments_list_table' => 'wp-admin/includes/class-wp-comments-list-table.php',
+ 'wp_community_events' => 'wp-admin/includes/class-wp-community-events.php',
+ 'wp_debug_data' => 'wp-admin/includes/class-wp-debug-data.php',
+ 'wp_filesystem_base' => 'wp-admin/includes/class-wp-filesystem-base.php',
+ 'wp_filesystem_direct' => 'wp-admin/includes/class-wp-filesystem-direct.php',
+ 'wp_filesystem_ftpext' => 'wp-admin/includes/class-wp-filesystem-ftpext.php',
+ 'wp_filesystem_ftpsockets' => 'wp-admin/includes/class-wp-filesystem-ftpsockets.php',
+ 'wp_filesystem_ssh2' => 'wp-admin/includes/class-wp-filesystem-ssh2.php',
+ 'wp_importer' => 'wp-admin/includes/class-wp-importer.php', // Contains some additional functions.
+ 'wp_internal_pointers' => 'wp-admin/includes/class-wp-internal-pointers.php',
+ 'wp_links_list_table' => 'wp-admin/includes/class-wp-links-list-table.php',
+ '_wp_list_table_compat' => 'wp-admin/includes/class-wp-list-table-compat.php',
+ 'wp_list_table' => 'wp-admin/includes/class-wp-list-table.php',
+ 'wp_media_list_table' => 'wp-admin/includes/class-wp-media-list-table.php',
+ 'wp_ms_sites_list_table' => 'wp-admin/includes/class-wp-ms-sites-list-table.php',
+ 'wp_ms_themes_list_table' => 'wp-admin/includes/class-wp-ms-themes-list-table.php',
+ 'wp_ms_users_list_table' => 'wp-admin/includes/class-wp-ms-users-list-table.php',
+ 'wp_plugin_install_list_table' => 'wp-admin/includes/class-wp-plugin-install-list-table.php',
+ 'wp_plugins_list_table' => 'wp-admin/includes/class-wp-plugins-list-table.php',
+ 'wp_post_comments_list_table' => 'wp-admin/includes/class-wp-post-comments-list-table.php',
+ 'wp_posts_list_table' => 'wp-admin/includes/class-wp-posts-list-table.php',
+ 'wp_privacy_data_export_requests_list_table' => 'wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php',
+ 'wp_privacy_data_removal_requests_list_table' => 'wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php',
+ 'wp_privacy_policy_content' => 'wp-admin/includes/class-wp-privacy-policy-content.php',
+ 'wp_privacy_requests_table' => 'wp-admin/includes/class-wp-privacy-requests-table.php',
+ 'wp_screen' => 'wp-admin/includes/class-wp-screen.php',
+ 'wp_site_health_auto_updates' => 'wp-admin/includes/class-wp-site-health-auto-updates.php',
+ 'wp_site_health' => 'wp-admin/includes/class-wp-site-health.php',
+ 'wp_site_icon' => 'wp-admin/includes/class-wp-site-icon.php',
+ 'wp_terms_list_table' => 'wp-admin/includes/class-wp-terms-list-table.php',
+ 'wp_theme_install_list_table' => 'wp-admin/includes/class-wp-theme-install-list-table.php',
+ 'wp_themes_list_table' => 'wp-admin/includes/class-wp-themes-list-table.php',
+ 'wp_upgrader_skin' => 'wp-admin/includes/class-wp-upgrader-skin.php',
+ 'wp_upgrader' => 'wp-admin/includes/class-wp-upgrader.php',
+ 'wp_users_list_table' => 'wp-admin/includes/class-wp-users-list-table.php',
+
+ // Classes in wp-admin/includes/deprecated.php.
+ 'wp_user_search' => 'wp-admin/includes/deprecated.php',
+ 'wp_privacy_data_export_requests_table' => 'wp-admin/includes/deprecated.php',
+ 'wp_privacy_data_removal_requests_table' => 'wp-admin/includes/deprecated.php',
+ );
+
+ /**
+ * Whether the autoloader has already been registered or not.
+ *
+ * Avoids registering the autoloader multiple times.
+ *
+ * @static
+ *
+ * @since x.x.x
+ *
+ * @access private
+ *
+ * @var bool
+ */
+ private static $registered = false;
+
+ /**
+ * Registers the autoloader.
+ *
+ * @since x.x.x
+ */
+ public static function register() {
+ // Bail early if already registered.
+ if ( self::$registered ) {
+ return;
+ }
+
+ self::register_external_bundled();
+ self::register_core();
+
+ self::$registered = true;
+ }
+
+ /**
+ * Registers the autoloader for external, bundled libraries.
+ *
+ * @since x.x.x
+ */
+ public static function register_external_bundled() {
+ require_once ABSPATH . 'wp-includes/Requests/src/Autoload.php';
+ require_once ABSPATH . 'wp-includes/sodium_compat/autoload.php';
+
+ spl_autoload_register( array( '\WpOrg\Requests\Autoload', 'load' ) );
+ }
+
+ /**
+ * Registers the autoloader for WordPress Core classes.
+ *
+ * @since x.x.x
+ */
+ public static function register_core() {
+ spl_autoload_register( array( __CLASS__, 'autoload_core' ), true, true );
+ }
+
+ /**
+ * Autoload a WordPress class.
+ *
+ * @since x.x.x
+ *
+ * @param string $class_name Class name.
+ */
+ public static function autoload_core( string $class_name ) {
+ // Lowercase the class name as PHP isn't case sensitive.
+ $class_name = strtolower( $class_name );
+
+ // Load Avifinfo classes.
+ if ( str_starts_with( $class_name, 'avifinfo' ) ) {
+ // This file contains multiple classes, so we need to use require_once.
+ require_once ABSPATH . 'wp-includes/class-avif-info.php';
+ return;
+ }
+
+ // Load SimplePie classes.
+ if ( str_starts_with( $class_name, 'simplepie' ) ) {
+ require_once ABSPATH . 'wp-includes/class-simplepie.php';
+ return;
+ }
+
+ /*
+ * Bail early if the class is not a WP class.
+ * Use empty() instead of !isset() for performance reasons (saves a BOOL_NOT opcode).
+ */
+ if ( empty( self::CLASSES_PATHS[ $class_name ] ) ) {
+ return;
+ }
+
+ require ABSPATH . self::CLASSES_PATHS[ $class_name ];
+ }
+}
+
+// Registers the autoloader.
+WP_Autoload::register();
diff --git a/src/wp-includes/class-wp-block-pattern-categories-registry.php b/src/wp-includes/class-wp-block-pattern-categories-registry.php
index 3d37a5940a642..1975eacfeedb4 100644
--- a/src/wp-includes/class-wp-block-pattern-categories-registry.php
+++ b/src/wp-includes/class-wp-block-pattern-categories-registry.php
@@ -162,30 +162,3 @@ public static function get_instance() {
return self::$instance;
}
}
-
-/**
- * Registers a new pattern category.
- *
- * @since 5.5.0
- *
- * @param string $category_name Pattern category name including namespace.
- * @param array $category_properties List of properties for the block pattern.
- * See WP_Block_Pattern_Categories_Registry::register() for
- * accepted arguments.
- * @return bool True if the pattern category was registered with success and false otherwise.
- */
-function register_block_pattern_category( $category_name, $category_properties ) {
- return WP_Block_Pattern_Categories_Registry::get_instance()->register( $category_name, $category_properties );
-}
-
-/**
- * Unregisters a pattern category.
- *
- * @since 5.5.0
- *
- * @param string $category_name Pattern category name including namespace.
- * @return bool True if the pattern category was unregistered with success and false otherwise.
- */
-function unregister_block_pattern_category( $category_name ) {
- return WP_Block_Pattern_Categories_Registry::get_instance()->unregister( $category_name );
-}
diff --git a/src/wp-includes/class-wp-block-patterns-registry.php b/src/wp-includes/class-wp-block-patterns-registry.php
index 6317bc81e51b1..1d2a746448211 100644
--- a/src/wp-includes/class-wp-block-patterns-registry.php
+++ b/src/wp-includes/class-wp-block-patterns-registry.php
@@ -294,29 +294,3 @@ public static function get_instance() {
return self::$instance;
}
}
-
-/**
- * Registers a new block pattern.
- *
- * @since 5.5.0
- *
- * @param string $pattern_name Block pattern name including namespace.
- * @param array $pattern_properties List of properties for the block pattern.
- * See WP_Block_Patterns_Registry::register() for accepted arguments.
- * @return bool True if the pattern was registered with success and false otherwise.
- */
-function register_block_pattern( $pattern_name, $pattern_properties ) {
- return WP_Block_Patterns_Registry::get_instance()->register( $pattern_name, $pattern_properties );
-}
-
-/**
- * Unregisters a block pattern.
- *
- * @since 5.5.0
- *
- * @param string $pattern_name Block pattern name including namespace.
- * @return bool True if the pattern was unregistered with success and false otherwise.
- */
-function unregister_block_pattern( $pattern_name ) {
- return WP_Block_Patterns_Registry::get_instance()->unregister( $pattern_name );
-}
diff --git a/src/wp-includes/class-wp-customize-control.php b/src/wp-includes/class-wp-customize-control.php
index 596c6e3723c8e..529575e30ae6e 100644
--- a/src/wp-includes/class-wp-customize-control.php
+++ b/src/wp-includes/class-wp-customize-control.php
@@ -699,109 +699,3 @@ final public function print_template() {
*/
protected function content_template() {}
}
-
-/**
- * WP_Customize_Color_Control class.
- */
-require_once ABSPATH . WPINC . '/customize/class-wp-customize-color-control.php';
-
-/**
- * WP_Customize_Media_Control class.
- */
-require_once ABSPATH . WPINC . '/customize/class-wp-customize-media-control.php';
-
-/**
- * WP_Customize_Upload_Control class.
- */
-require_once ABSPATH . WPINC . '/customize/class-wp-customize-upload-control.php';
-
-/**
- * WP_Customize_Image_Control class.
- */
-require_once ABSPATH . WPINC . '/customize/class-wp-customize-image-control.php';
-
-/**
- * WP_Customize_Background_Image_Control class.
- */
-require_once ABSPATH . WPINC . '/customize/class-wp-customize-background-image-control.php';
-
-/**
- * WP_Customize_Background_Position_Control class.
- */
-require_once ABSPATH . WPINC . '/customize/class-wp-customize-background-position-control.php';
-
-/**
- * WP_Customize_Cropped_Image_Control class.
- */
-require_once ABSPATH . WPINC . '/customize/class-wp-customize-cropped-image-control.php';
-
-/**
- * WP_Customize_Site_Icon_Control class.
- */
-require_once ABSPATH . WPINC . '/customize/class-wp-customize-site-icon-control.php';
-
-/**
- * WP_Customize_Header_Image_Control class.
- */
-require_once ABSPATH . WPINC . '/customize/class-wp-customize-header-image-control.php';
-
-/**
- * WP_Customize_Theme_Control class.
- */
-require_once ABSPATH . WPINC . '/customize/class-wp-customize-theme-control.php';
-
-/**
- * WP_Widget_Area_Customize_Control class.
- */
-require_once ABSPATH . WPINC . '/customize/class-wp-widget-area-customize-control.php';
-
-/**
- * WP_Widget_Form_Customize_Control class.
- */
-require_once ABSPATH . WPINC . '/customize/class-wp-widget-form-customize-control.php';
-
-/**
- * WP_Customize_Nav_Menu_Control class.
- */
-require_once ABSPATH . WPINC . '/customize/class-wp-customize-nav-menu-control.php';
-
-/**
- * WP_Customize_Nav_Menu_Item_Control class.
- */
-require_once ABSPATH . WPINC . '/customize/class-wp-customize-nav-menu-item-control.php';
-
-/**
- * WP_Customize_Nav_Menu_Location_Control class.
- */
-require_once ABSPATH . WPINC . '/customize/class-wp-customize-nav-menu-location-control.php';
-
-/**
- * WP_Customize_Nav_Menu_Name_Control class.
- *
- * As this file is deprecated, it will trigger a deprecation notice if instantiated. In a subsequent
- * release, the require_once here will be removed and _deprecated_file() will be called if file is
- * required at all.
- *
- * @deprecated 4.9.0 This file is no longer used due to new menu creation UX.
- */
-require_once ABSPATH . WPINC . '/customize/class-wp-customize-nav-menu-name-control.php';
-
-/**
- * WP_Customize_Nav_Menu_Locations_Control class.
- */
-require_once ABSPATH . WPINC . '/customize/class-wp-customize-nav-menu-locations-control.php';
-
-/**
- * WP_Customize_Nav_Menu_Auto_Add_Control class.
- */
-require_once ABSPATH . WPINC . '/customize/class-wp-customize-nav-menu-auto-add-control.php';
-
-/**
- * WP_Customize_Date_Time_Control class.
- */
-require_once ABSPATH . WPINC . '/customize/class-wp-customize-date-time-control.php';
-
-/**
- * WP_Sidebar_Block_Editor_Control class.
- */
-require_once ABSPATH . WPINC . '/customize/class-wp-sidebar-block-editor-control.php';
diff --git a/src/wp-includes/class-wp-customize-manager.php b/src/wp-includes/class-wp-customize-manager.php
index 8d5e94af94b8d..5a082dc7f447f 100644
--- a/src/wp-includes/class-wp-customize-manager.php
+++ b/src/wp-includes/class-wp-customize-manager.php
@@ -302,45 +302,6 @@ public function __construct( $args = array() ) {
}
}
- require_once ABSPATH . WPINC . '/class-wp-customize-setting.php';
- require_once ABSPATH . WPINC . '/class-wp-customize-panel.php';
- require_once ABSPATH . WPINC . '/class-wp-customize-section.php';
- require_once ABSPATH . WPINC . '/class-wp-customize-control.php';
-
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-color-control.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-media-control.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-upload-control.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-image-control.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-background-image-control.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-background-position-control.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-cropped-image-control.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-site-icon-control.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-header-image-control.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-theme-control.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-code-editor-control.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-widget-area-customize-control.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-widget-form-customize-control.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-nav-menu-control.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-nav-menu-item-control.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-nav-menu-location-control.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-nav-menu-name-control.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-nav-menu-locations-control.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-nav-menu-auto-add-control.php';
-
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-nav-menus-panel.php';
-
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-themes-panel.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-themes-section.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-sidebar-section.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-nav-menu-section.php';
-
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-custom-css-setting.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-filter-setting.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-header-image-setting.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-background-image-setting.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-nav-menu-item-setting.php';
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-nav-menu-setting.php';
-
/**
* Filters the core Customizer components to load.
*
@@ -358,16 +319,13 @@ public function __construct( $args = array() ) {
*/
$components = apply_filters( 'customize_loaded_components', $this->components, $this );
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-selective-refresh.php';
$this->selective_refresh = new WP_Customize_Selective_Refresh( $this );
if ( in_array( 'widgets', $components, true ) ) {
- require_once ABSPATH . WPINC . '/class-wp-customize-widgets.php';
$this->widgets = new WP_Customize_Widgets( $this );
}
if ( in_array( 'nav_menus', $components, true ) ) {
- require_once ABSPATH . WPINC . '/class-wp-customize-nav-menus.php';
$this->nav_menus = new WP_Customize_Nav_Menus( $this );
}
diff --git a/src/wp-includes/class-wp-customize-panel.php b/src/wp-includes/class-wp-customize-panel.php
index 95b7aed468814..1840a5594a0cb 100644
--- a/src/wp-includes/class-wp-customize-panel.php
+++ b/src/wp-includes/class-wp-customize-panel.php
@@ -406,6 +406,3 @@ protected function content_template() {
is_initialized() ) {
diff --git a/src/wp-includes/class-wp-recovery-mode-key-service.php b/src/wp-includes/class-wp-recovery-mode-key-service.php
index 38d5730f85bf4..011e8444adf7e 100644
--- a/src/wp-includes/class-wp-recovery-mode-key-service.php
+++ b/src/wp-includes/class-wp-recovery-mode-key-service.php
@@ -50,7 +50,6 @@ public function generate_and_store_recovery_mode_key( $token ) {
$key = wp_generate_password( 22, false );
if ( empty( $wp_hasher ) ) {
- require_once ABSPATH . WPINC . '/class-phpass.php';
$wp_hasher = new PasswordHash( 8, true );
}
@@ -110,7 +109,6 @@ public function validate_recovery_mode_key( $token, $key, $ttl ) {
}
if ( empty( $wp_hasher ) ) {
- require_once ABSPATH . WPINC . '/class-phpass.php';
$wp_hasher = new PasswordHash( 8, true );
}
diff --git a/src/wp-includes/class.wp-dependencies.php b/src/wp-includes/class.wp-dependencies.php
index 631ed9e93e66f..7eba5f7556e02 100644
--- a/src/wp-includes/class.wp-dependencies.php
+++ b/src/wp-includes/class.wp-dependencies.php
@@ -9,6 +9,3 @@
*/
_deprecated_file( basename( __FILE__ ), '6.1.0', WPINC . '/class-wp-dependencies.php' );
-
-/** WP_Dependencies class */
-require_once ABSPATH . WPINC . '/class-wp-dependencies.php';
diff --git a/src/wp-includes/class.wp-scripts.php b/src/wp-includes/class.wp-scripts.php
index 30e2d31126e69..cf58e73146683 100644
--- a/src/wp-includes/class.wp-scripts.php
+++ b/src/wp-includes/class.wp-scripts.php
@@ -9,6 +9,3 @@
*/
_deprecated_file( basename( __FILE__ ), '6.1.0', WPINC . '/class-wp-scripts.php' );
-
-/** WP_Scripts class */
-require_once ABSPATH . WPINC . '/class-wp-scripts.php';
diff --git a/src/wp-includes/class.wp-styles.php b/src/wp-includes/class.wp-styles.php
index 1a33a9e6b0cd6..7a79dc91ec3da 100644
--- a/src/wp-includes/class.wp-styles.php
+++ b/src/wp-includes/class.wp-styles.php
@@ -9,6 +9,3 @@
*/
_deprecated_file( basename( __FILE__ ), '6.1.0', WPINC . '/class-wp-styles.php' );
-
-/** WP_Styles class */
-require_once ABSPATH . WPINC . '/class-wp-styles.php';
diff --git a/src/wp-includes/comment.php b/src/wp-includes/comment.php
index d336399117284..5cd76d562b724 100644
--- a/src/wp-includes/comment.php
+++ b/src/wp-includes/comment.php
@@ -3047,8 +3047,6 @@ function generic_ping( $post_id = 0 ) {
* @param int|WP_Post $post Post ID or object.
*/
function pingback( $content, $post ) {
- require_once ABSPATH . WPINC . '/class-IXR.php';
- require_once ABSPATH . WPINC . '/class-wp-http-ixr-client.php';
// Original code by Mort (http://mort.mine.nu:8080).
$post_links = array();
@@ -3215,8 +3213,6 @@ function trackback( $trackback_url, $title, $excerpt, $post_id ) {
* @param string $path Path to send the ping.
*/
function weblog_ping( $server = '', $path = '' ) {
- require_once ABSPATH . WPINC . '/class-IXR.php';
- require_once ABSPATH . WPINC . '/class-wp-http-ixr-client.php';
// Using a timeout of 3 seconds should be enough to cover slow servers.
$client = new WP_HTTP_IXR_Client( $server, ( ( ! strlen( trim( $path ) ) || ( '/' === $path ) ) ? false : $path ) );
diff --git a/src/wp-includes/customize/class-wp-customize-header-image-setting.php b/src/wp-includes/customize/class-wp-customize-header-image-setting.php
index 80333a54128af..20b1d53e69978 100644
--- a/src/wp-includes/customize/class-wp-customize-header-image-setting.php
+++ b/src/wp-includes/customize/class-wp-customize-header-image-setting.php
@@ -38,7 +38,6 @@ public function update( $value ) {
// If _custom_header_background_just_in_time() fails to initialize $custom_image_header when not is_admin().
if ( empty( $custom_image_header ) ) {
- require_once ABSPATH . 'wp-admin/includes/class-custom-image-header.php';
$args = get_theme_support( 'custom-header' );
$admin_head_callback = isset( $args[0]['admin-head-callback'] ) ? $args[0]['admin-head-callback'] : null;
$admin_preview_callback = isset( $args[0]['admin-preview-callback'] ) ? $args[0]['admin-preview-callback'] : null;
diff --git a/src/wp-includes/customize/class-wp-customize-selective-refresh.php b/src/wp-includes/customize/class-wp-customize-selective-refresh.php
index d20e8ab0a76ad..82999855af90d 100644
--- a/src/wp-includes/customize/class-wp-customize-selective-refresh.php
+++ b/src/wp-includes/customize/class-wp-customize-selective-refresh.php
@@ -63,8 +63,6 @@ final class WP_Customize_Selective_Refresh {
*/
public function __construct( WP_Customize_Manager $manager ) {
$this->manager = $manager;
- require_once ABSPATH . WPINC . '/customize/class-wp-customize-partial.php';
-
add_action( 'customize_preview_init', array( $this, 'init_preview' ) );
}
diff --git a/src/wp-includes/date.php b/src/wp-includes/date.php
index 425e72005f30e..19b7699e41b7f 100644
--- a/src/wp-includes/date.php
+++ b/src/wp-includes/date.php
@@ -9,6 +9,3 @@
*/
_deprecated_file( basename( __FILE__ ), '5.3.0', WPINC . '/class-wp-date-query.php' );
-
-/** WP_Date_Query class */
-require_once ABSPATH . WPINC . '/class-wp-date-query.php';
diff --git a/src/wp-includes/default-widgets.php b/src/wp-includes/default-widgets.php
index f8f3c4d141535..4faac203a5c12 100644
--- a/src/wp-includes/default-widgets.php
+++ b/src/wp-includes/default-widgets.php
@@ -6,63 +6,3 @@
* @subpackage Widgets
* @since 2.8.0
*/
-
-/** WP_Widget_Pages class */
-require_once ABSPATH . WPINC . '/widgets/class-wp-widget-pages.php';
-
-/** WP_Widget_Links class */
-require_once ABSPATH . WPINC . '/widgets/class-wp-widget-links.php';
-
-/** WP_Widget_Search class */
-require_once ABSPATH . WPINC . '/widgets/class-wp-widget-search.php';
-
-/** WP_Widget_Archives class */
-require_once ABSPATH . WPINC . '/widgets/class-wp-widget-archives.php';
-
-/** WP_Widget_Media class */
-require_once ABSPATH . WPINC . '/widgets/class-wp-widget-media.php';
-
-/** WP_Widget_Media_Audio class */
-require_once ABSPATH . WPINC . '/widgets/class-wp-widget-media-audio.php';
-
-/** WP_Widget_Media_Image class */
-require_once ABSPATH . WPINC . '/widgets/class-wp-widget-media-image.php';
-
-/** WP_Widget_Media_Video class */
-require_once ABSPATH . WPINC . '/widgets/class-wp-widget-media-video.php';
-
-/** WP_Widget_Media_Gallery class */
-require_once ABSPATH . WPINC . '/widgets/class-wp-widget-media-gallery.php';
-
-/** WP_Widget_Meta class */
-require_once ABSPATH . WPINC . '/widgets/class-wp-widget-meta.php';
-
-/** WP_Widget_Calendar class */
-require_once ABSPATH . WPINC . '/widgets/class-wp-widget-calendar.php';
-
-/** WP_Widget_Text class */
-require_once ABSPATH . WPINC . '/widgets/class-wp-widget-text.php';
-
-/** WP_Widget_Categories class */
-require_once ABSPATH . WPINC . '/widgets/class-wp-widget-categories.php';
-
-/** WP_Widget_Recent_Posts class */
-require_once ABSPATH . WPINC . '/widgets/class-wp-widget-recent-posts.php';
-
-/** WP_Widget_Recent_Comments class */
-require_once ABSPATH . WPINC . '/widgets/class-wp-widget-recent-comments.php';
-
-/** WP_Widget_RSS class */
-require_once ABSPATH . WPINC . '/widgets/class-wp-widget-rss.php';
-
-/** WP_Widget_Tag_Cloud class */
-require_once ABSPATH . WPINC . '/widgets/class-wp-widget-tag-cloud.php';
-
-/** WP_Nav_Menu_Widget class */
-require_once ABSPATH . WPINC . '/widgets/class-wp-nav-menu-widget.php';
-
-/** WP_Widget_Custom_HTML class */
-require_once ABSPATH . WPINC . '/widgets/class-wp-widget-custom-html.php';
-
-/** WP_Widget_Block class */
-require_once ABSPATH . WPINC . '/widgets/class-wp-widget-block.php';
diff --git a/src/wp-includes/feed.php b/src/wp-includes/feed.php
index fc95bc5b7d7e9..4c7f7a05a5c5a 100644
--- a/src/wp-includes/feed.php
+++ b/src/wp-includes/feed.php
@@ -794,14 +794,6 @@ function feed_content_type( $type = '' ) {
* @return SimplePie|WP_Error SimplePie object on success or WP_Error object on failure.
*/
function fetch_feed( $url ) {
- if ( ! class_exists( 'SimplePie', false ) ) {
- require_once ABSPATH . WPINC . '/class-simplepie.php';
- }
-
- require_once ABSPATH . WPINC . '/class-wp-feed-cache-transient.php';
- require_once ABSPATH . WPINC . '/class-wp-simplepie-file.php';
- require_once ABSPATH . WPINC . '/class-wp-simplepie-sanitize-kses.php';
-
$feed = new SimplePie();
$feed->set_sanitize_class( 'WP_SimplePie_Sanitize_KSES' );
@@ -817,7 +809,6 @@ function fetch_feed( $url ) {
$feed->set_cache_location( 'wp_transient' );
} else {
// Back-compat for SimplePie 1.2.x.
- require_once ABSPATH . WPINC . '/class-wp-feed-cache.php';
$feed->set_cache_class( 'WP_Feed_Cache' );
}
diff --git a/src/wp-includes/functions.php b/src/wp-includes/functions.php
index 67544bc889e2c..c405395fddaad 100644
--- a/src/wp-includes/functions.php
+++ b/src/wp-includes/functions.php
@@ -882,7 +882,6 @@ function do_enclose( $content, $post ) {
global $wpdb;
// @todo Tidy this code and make the debug code optional.
- require_once ABSPATH . WPINC . '/class-IXR.php';
$post = get_post( $post );
if ( ! $post ) {
@@ -5394,8 +5393,6 @@ function wp_maybe_load_widgets() {
return;
}
- require_once ABSPATH . WPINC . '/default-widgets.php';
-
add_action( '_admin_menu', 'wp_widgets_add_menu' );
}
diff --git a/src/wp-includes/general-template.php b/src/wp-includes/general-template.php
index b4aa26e2e493e..ca34aa50534ac 100644
--- a/src/wp-includes/general-template.php
+++ b/src/wp-includes/general-template.php
@@ -3837,9 +3837,6 @@ function wp_default_editor() {
* @param array $settings See _WP_Editors::parse_settings() for description.
*/
function wp_editor( $content, $editor_id, $settings = array() ) {
- if ( ! class_exists( '_WP_Editors', false ) ) {
- require ABSPATH . WPINC . '/class-wp-editor.php';
- }
_WP_Editors::editor( $content, $editor_id, $settings );
}
@@ -3853,10 +3850,6 @@ function wp_editor( $content, $editor_id, $settings = array() ) {
* @since 4.8.0
*/
function wp_enqueue_editor() {
- if ( ! class_exists( '_WP_Editors', false ) ) {
- require ABSPATH . WPINC . '/class-wp-editor.php';
- }
-
_WP_Editors::enqueue_default_editor();
}
diff --git a/src/wp-includes/load.php b/src/wp-includes/load.php
index b0b8209235c3e..a6ade52c4f0a3 100644
--- a/src/wp-includes/load.php
+++ b/src/wp-includes/load.php
@@ -677,8 +677,6 @@ function wp_set_lang_dir() {
function require_wp_db() {
global $wpdb;
- require_once ABSPATH . WPINC . '/class-wpdb.php';
-
if ( file_exists( WP_CONTENT_DIR . '/db.php' ) ) {
require_once WP_CONTENT_DIR . '/db.php';
}
@@ -1497,16 +1495,7 @@ function wp_load_translations_early() {
require ABSPATH . WPINC . '/version.php';
// Translation and localization.
- require_once ABSPATH . WPINC . '/pomo/mo.php';
- require_once ABSPATH . WPINC . '/l10n/class-wp-translation-controller.php';
- require_once ABSPATH . WPINC . '/l10n/class-wp-translations.php';
- require_once ABSPATH . WPINC . '/l10n/class-wp-translation-file.php';
- require_once ABSPATH . WPINC . '/l10n/class-wp-translation-file-mo.php';
- require_once ABSPATH . WPINC . '/l10n/class-wp-translation-file-php.php';
require_once ABSPATH . WPINC . '/l10n.php';
- require_once ABSPATH . WPINC . '/class-wp-textdomain-registry.php';
- require_once ABSPATH . WPINC . '/class-wp-locale.php';
- require_once ABSPATH . WPINC . '/class-wp-locale-switcher.php';
// General libraries.
require_once ABSPATH . WPINC . '/plugin.php';
diff --git a/src/wp-includes/media.php b/src/wp-includes/media.php
index 82ea8f27edc09..4e93e561d84bf 100644
--- a/src/wp-includes/media.php
+++ b/src/wp-includes/media.php
@@ -4178,10 +4178,6 @@ function wp_image_editor_supports( $args = array() ) {
* False if no editor claims to support the request.
*/
function _wp_image_editor_choose( $args = array() ) {
- require_once ABSPATH . WPINC . '/class-wp-image-editor.php';
- require_once ABSPATH . WPINC . '/class-wp-image-editor-gd.php';
- require_once ABSPATH . WPINC . '/class-wp-image-editor-imagick.php';
- require_once ABSPATH . WPINC . '/class-avif-info.php';
/**
* Filters the list of image editing library classes.
*
@@ -5718,8 +5714,6 @@ function wp_get_avif_info( $filename ) {
}
// Parse the file using libavifinfo's PHP implementation.
- require_once ABSPATH . WPINC . '/class-avif-info.php';
-
$handle = fopen( $filename, 'rb' );
if ( $handle ) {
$parser = new Avifinfo\Parser( $handle );
diff --git a/src/wp-includes/meta.php b/src/wp-includes/meta.php
index 6f6dd928e0498..160374673a4f6 100644
--- a/src/wp-includes/meta.php
+++ b/src/wp-includes/meta.php
@@ -10,8 +10,6 @@
* @subpackage Meta
*/
-require ABSPATH . WPINC . '/class-wp-metadata-lazyloader.php';
-
/**
* Adds metadata for the specified object.
*
diff --git a/src/wp-includes/ms-settings.php b/src/wp-includes/ms-settings.php
index 27dc1337f5fd0..c22aba3c3c521 100644
--- a/src/wp-includes/ms-settings.php
+++ b/src/wp-includes/ms-settings.php
@@ -31,12 +31,6 @@
*/
global $current_site, $current_blog, $domain, $path, $site_id, $public;
-/** WP_Network class */
-require_once ABSPATH . WPINC . '/class-wp-network.php';
-
-/** WP_Site class */
-require_once ABSPATH . WPINC . '/class-wp-site.php';
-
/** Multisite loader */
require_once ABSPATH . WPINC . '/ms-load.php';
diff --git a/src/wp-includes/nav-menu-template.php b/src/wp-includes/nav-menu-template.php
index 860efa92d3377..80f42dc4d6390 100644
--- a/src/wp-includes/nav-menu-template.php
+++ b/src/wp-includes/nav-menu-template.php
@@ -7,9 +7,6 @@
* @since 3.0.0
*/
-/** Walker_Nav_Menu class */
-require_once ABSPATH . WPINC . '/class-walker-nav-menu.php';
-
/**
* Displays a navigation menu.
*
diff --git a/src/wp-includes/pluggable.php b/src/wp-includes/pluggable.php
index 690c0fe4bca47..e883bce812ee2 100644
--- a/src/wp-includes/pluggable.php
+++ b/src/wp-includes/pluggable.php
@@ -2580,7 +2580,6 @@ function wp_hash_password( $password ) {
global $wp_hasher;
if ( empty( $wp_hasher ) ) {
- require_once ABSPATH . WPINC . '/class-phpass.php';
// By default, use the portable hash from phpass.
$wp_hasher = new PasswordHash( 8, true );
}
@@ -2642,7 +2641,6 @@ function wp_check_password( $password, $hash, $user_id = '' ) {
* presume the new style phpass portable hash.
*/
if ( empty( $wp_hasher ) ) {
- require_once ABSPATH . WPINC . '/class-phpass.php';
// By default, use the portable hash from phpass.
$wp_hasher = new PasswordHash( 8, true );
}
@@ -3099,10 +3097,6 @@ function wp_text_diff( $left_string, $right_string, $args = null ) {
);
$args = wp_parse_args( $args, $defaults );
- if ( ! class_exists( 'WP_Text_Diff_Renderer_Table', false ) ) {
- require ABSPATH . WPINC . '/wp-diff.php';
- }
-
$left_string = normalize_whitespace( $left_string );
$right_string = normalize_whitespace( $right_string );
diff --git a/src/wp-includes/plugin.php b/src/wp-includes/plugin.php
index 77c1eb4ef669b..ffd41a2fe288f 100644
--- a/src/wp-includes/plugin.php
+++ b/src/wp-includes/plugin.php
@@ -21,8 +21,10 @@
* @since 1.5.0
*/
-// Initialize the filter globals.
-require __DIR__ . '/class-wp-hook.php';
+// Initialize WP_Hook if not loaded.
+if ( ! class_exists( 'WP_Autoload' ) && ! class_exists( 'WP_Hook' ) ) {
+ require_once __DIR__ . '/class-wp-hook.php';
+}
/** @var WP_Hook[] $wp_filter */
global $wp_filter;
diff --git a/src/wp-includes/pomo/mo.php b/src/wp-includes/pomo/mo.php
index 1bbc40ab65aa2..9c2dd593789f7 100644
--- a/src/wp-includes/pomo/mo.php
+++ b/src/wp-includes/pomo/mo.php
@@ -7,9 +7,6 @@
* @subpackage mo
*/
-require_once __DIR__ . '/translations.php';
-require_once __DIR__ . '/streams.php';
-
if ( ! class_exists( 'MO', false ) ) :
class MO extends Gettext_Translations {
diff --git a/src/wp-includes/pomo/po.php b/src/wp-includes/pomo/po.php
index a4e3cab4ef17a..134809681ca1c 100644
--- a/src/wp-includes/pomo/po.php
+++ b/src/wp-includes/pomo/po.php
@@ -7,8 +7,6 @@
* @subpackage po
*/
-require_once __DIR__ . '/translations.php';
-
if ( ! defined( 'PO_MAX_LINE_LEN' ) ) {
define( 'PO_MAX_LINE_LEN', 79 );
}
diff --git a/src/wp-includes/pomo/translations.php b/src/wp-includes/pomo/translations.php
index 87ebcf20737f7..6fc00511eb4b7 100644
--- a/src/wp-includes/pomo/translations.php
+++ b/src/wp-includes/pomo/translations.php
@@ -8,9 +8,6 @@
* @since 2.8.0
*/
-require_once __DIR__ . '/plural-forms.php';
-require_once __DIR__ . '/entry.php';
-
if ( ! class_exists( 'Translations', false ) ) :
/**
* Translations class.
diff --git a/src/wp-includes/post-template.php b/src/wp-includes/post-template.php
index 4f3bfbef0cd7e..34bf23b381858 100644
--- a/src/wp-includes/post-template.php
+++ b/src/wp-includes/post-template.php
@@ -882,7 +882,6 @@ function post_password_required( $post = null ) {
return apply_filters( 'post_password_required', true, $post );
}
- require_once ABSPATH . WPINC . '/class-phpass.php';
$hasher = new PasswordHash( 8, true );
$hash = wp_unslash( $_COOKIE[ 'wp-postpass_' . COOKIEHASH ] );
diff --git a/src/wp-includes/rest-api/endpoints/class-wp-rest-plugins-controller.php b/src/wp-includes/rest-api/endpoints/class-wp-rest-plugins-controller.php
index d0dd5fce4cd9c..e4d59b3277059 100644
--- a/src/wp-includes/rest-api/endpoints/class-wp-rest-plugins-controller.php
+++ b/src/wp-includes/rest-api/endpoints/class-wp-rest-plugins-controller.php
@@ -275,7 +275,6 @@ public function create_item( $request ) {
require_once ABSPATH . 'wp-admin/includes/file.php';
require_once ABSPATH . 'wp-admin/includes/plugin.php';
- require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
require_once ABSPATH . 'wp-admin/includes/plugin-install.php';
$slug = $request['slug'];
diff --git a/src/wp-includes/rest-api/endpoints/class-wp-rest-site-health-controller.php b/src/wp-includes/rest-api/endpoints/class-wp-rest-site-health-controller.php
index 41e15337add5f..1d2a22b90edcf 100644
--- a/src/wp-includes/rest-api/endpoints/class-wp-rest-site-health-controller.php
+++ b/src/wp-includes/rest-api/endpoints/class-wp-rest-site-health-controller.php
@@ -281,10 +281,6 @@ public function test_page_cache() {
* @return array|WP_Error
*/
public function get_directory_sizes() {
- if ( ! class_exists( 'WP_Debug_Data' ) ) {
- require_once ABSPATH . 'wp-admin/includes/class-wp-debug-data.php';
- }
-
$this->load_admin_textdomain();
$sizes_data = WP_Debug_Data::get_sizes();
diff --git a/src/wp-includes/script-loader.php b/src/wp-includes/script-loader.php
index 2da46f1332e7f..40a0ab49d1384 100644
--- a/src/wp-includes/script-loader.php
+++ b/src/wp-includes/script-loader.php
@@ -16,21 +16,9 @@
* @package WordPress
*/
-/** WordPress Dependency Class */
-require ABSPATH . WPINC . '/class-wp-dependency.php';
-
-/** WordPress Dependencies Class */
-require ABSPATH . WPINC . '/class-wp-dependencies.php';
-
-/** WordPress Scripts Class */
-require ABSPATH . WPINC . '/class-wp-scripts.php';
-
/** WordPress Scripts Functions */
require ABSPATH . WPINC . '/functions.wp-scripts.php';
-/** WordPress Styles Class */
-require ABSPATH . WPINC . '/class-wp-styles.php';
-
/** WordPress Styles Functions */
require ABSPATH . WPINC . '/functions.wp-styles.php';
@@ -1996,8 +1984,6 @@ function wp_localize_community_events() {
return;
}
- require_once ABSPATH . 'wp-admin/includes/class-wp-community-events.php';
-
$user_id = get_current_user_id();
$saved_location = get_user_option( 'community-events-location', $user_id );
$saved_ip_address = isset( $saved_location['ip'] ) ? $saved_location['ip'] : false;
diff --git a/src/wp-includes/session.php b/src/wp-includes/session.php
index df2a042ca6ce9..c0d12c686d2ef 100644
--- a/src/wp-includes/session.php
+++ b/src/wp-includes/session.php
@@ -7,6 +7,3 @@
*/
_deprecated_file( basename( __FILE__ ), '4.7.0' );
-
-require_once ABSPATH . WPINC . '/class-wp-session-tokens.php';
-require_once ABSPATH . WPINC . '/class-wp-user-meta-session-tokens.php';
diff --git a/src/wp-includes/theme.php b/src/wp-includes/theme.php
index 1a9b2479ad7e2..1f3fa58daca81 100644
--- a/src/wp-includes/theme.php
+++ b/src/wp-includes/theme.php
@@ -2961,7 +2961,6 @@ function _custom_header_background_just_in_time() {
}
if ( is_admin() ) {
- require_once ABSPATH . 'wp-admin/includes/class-custom-image-header.php';
$custom_image_header = new Custom_Image_Header( $args[0]['admin-head-callback'], $args[0]['admin-preview-callback'] );
}
}
@@ -2974,7 +2973,6 @@ function _custom_header_background_just_in_time() {
add_action( 'wp_head', $args[0]['wp-head-callback'] );
if ( is_admin() ) {
- require_once ABSPATH . 'wp-admin/includes/class-custom-background.php';
$custom_background = new Custom_Background( $args[0]['admin-head-callback'], $args[0]['admin-preview-callback'] );
}
}
@@ -3612,7 +3610,6 @@ function _wp_customize_include() {
);
$settings_previewed = ! $is_customize_save_action;
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
$GLOBALS['wp_customize'] = new WP_Customize_Manager(
compact(
'changeset_uuid',
@@ -3652,7 +3649,6 @@ function _wp_customize_publish_changeset( $new_status, $old_status, $changeset_p
}
if ( empty( $wp_customize ) ) {
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
$wp_customize = new WP_Customize_Manager(
array(
'changeset_uuid' => $changeset_post->post_name,
diff --git a/src/wp-includes/update.php b/src/wp-includes/update.php
index 79ed9cd5743c8..78a6cc5a6cee6 100644
--- a/src/wp-includes/update.php
+++ b/src/wp-includes/update.php
@@ -843,7 +843,6 @@ function wp_update_themes( $extra_stats = array() ) {
*/
function wp_maybe_auto_update() {
require_once ABSPATH . 'wp-admin/includes/admin.php';
- require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
$upgrader = new WP_Automatic_Updater();
$upgrader->run();
diff --git a/src/wp-includes/user.php b/src/wp-includes/user.php
index c234c495dfe3d..8ca3552f79444 100644
--- a/src/wp-includes/user.php
+++ b/src/wp-includes/user.php
@@ -2969,7 +2969,6 @@ function get_password_reset_key( $user ) {
// Now insert the key, hashed, into the DB.
if ( empty( $wp_hasher ) ) {
- require_once ABSPATH . WPINC . '/class-phpass.php';
$wp_hasher = new PasswordHash( 8, true );
}
@@ -3025,7 +3024,6 @@ function check_password_reset_key( $key, $login ) {
}
if ( empty( $wp_hasher ) ) {
- require_once ABSPATH . WPINC . '/class-phpass.php';
$wp_hasher = new PasswordHash( 8, true );
}
@@ -4877,7 +4875,6 @@ function wp_generate_user_request_key( $request_id ) {
// Return the key, hashed.
if ( empty( $wp_hasher ) ) {
- require_once ABSPATH . WPINC . '/class-phpass.php';
$wp_hasher = new PasswordHash( 8, true );
}
@@ -4924,7 +4921,6 @@ function wp_validate_user_request_key( $request_id, $key ) {
}
if ( empty( $wp_hasher ) ) {
- require_once ABSPATH . WPINC . '/class-phpass.php';
$wp_hasher = new PasswordHash( 8, true );
}
diff --git a/src/wp-includes/wp-db.php b/src/wp-includes/wp-db.php
index 73a01113438db..82198800b8159 100644
--- a/src/wp-includes/wp-db.php
+++ b/src/wp-includes/wp-db.php
@@ -12,6 +12,3 @@
// Note: WPINC may not be defined yet, so 'wp-includes' is used here.
_deprecated_file( basename( __FILE__ ), '6.1.0', 'wp-includes/class-wpdb.php' );
}
-
-/** wpdb class */
-require_once __DIR__ . '/class-wpdb.php';
diff --git a/src/wp-includes/wp-diff.php b/src/wp-includes/wp-diff.php
index 235b04b4bed08..1cdda36e09753 100644
--- a/src/wp-includes/wp-diff.php
+++ b/src/wp-includes/wp-diff.php
@@ -7,15 +7,3 @@
* @package WordPress
* @subpackage Diff
*/
-
-if ( ! class_exists( 'Text_Diff', false ) ) {
- /** Text_Diff class */
- require ABSPATH . WPINC . '/Text/Diff.php';
- /** Text_Diff_Renderer class */
- require ABSPATH . WPINC . '/Text/Diff/Renderer.php';
- /** Text_Diff_Renderer_inline class */
- require ABSPATH . WPINC . '/Text/Diff/Renderer/inline.php';
-}
-
-require ABSPATH . WPINC . '/class-wp-text-diff-renderer-table.php';
-require ABSPATH . WPINC . '/class-wp-text-diff-renderer-inline.php';
diff --git a/src/wp-load.php b/src/wp-load.php
index 40c141f74034b..fc15763c07f4e 100644
--- a/src/wp-load.php
+++ b/src/wp-load.php
@@ -21,6 +21,12 @@
define( 'ABSPATH', __DIR__ . '/' );
}
+if ( ! defined( 'WPINC' ) ) {
+ define( 'WPINC', 'wp-includes' );
+}
+
+require_once ABSPATH . WPINC . '/class-wp-autoload.php';
+
/*
* The error_reporting() function can be disabled in php.ini. On systems where that is the case,
* it's best to add a dummy function to the wp-config.php file, but as this call to the function
@@ -58,7 +64,6 @@
// A config file doesn't exist.
- define( 'WPINC', 'wp-includes' );
require_once ABSPATH . WPINC . '/version.php';
require_once ABSPATH . WPINC . '/compat.php';
require_once ABSPATH . WPINC . '/load.php';
diff --git a/src/wp-login.php b/src/wp-login.php
index a489d98856f71..bae5291aff911 100644
--- a/src/wp-login.php
+++ b/src/wp-login.php
@@ -762,7 +762,6 @@ function wp_login_viewport_meta() {
exit;
}
- require_once ABSPATH . WPINC . '/class-phpass.php';
$hasher = new PasswordHash( 8, true );
/**
diff --git a/src/wp-mail.php b/src/wp-mail.php
index 7b18dd4ad1494..1c847cec181b6 100644
--- a/src/wp-mail.php
+++ b/src/wp-mail.php
@@ -28,9 +28,6 @@
*/
do_action( 'wp-mail.php' ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
-/** Get the POP3 class with which to access the mailbox. */
-require_once ABSPATH . WPINC . '/class-pop3.php';
-
/** Only check at this interval for new messages. */
if ( ! defined( 'WP_MAIL_INTERVAL' ) ) {
define( 'WP_MAIL_INTERVAL', 5 * MINUTE_IN_SECONDS );
diff --git a/src/wp-settings.php b/src/wp-settings.php
index 4643892ada0d6..40db5def78be6 100644
--- a/src/wp-settings.php
+++ b/src/wp-settings.php
@@ -13,7 +13,12 @@
*
* @since 1.0.0
*/
-define( 'WPINC', 'wp-includes' );
+if ( ! defined( 'WPINC' ) ) {
+ define( 'WPINC', 'wp-includes' );
+}
+
+// Require the autoloader.
+require_once ABSPATH . WPINC . '/class-wp-autoload.php';
/**
* Version information for the current WordPress release.
@@ -38,13 +43,6 @@
wp_check_php_mysql_versions();
// Include files required for initialization.
-require ABSPATH . WPINC . '/class-wp-paused-extensions-storage.php';
-require ABSPATH . WPINC . '/class-wp-fatal-error-handler.php';
-require ABSPATH . WPINC . '/class-wp-recovery-mode-cookie-service.php';
-require ABSPATH . WPINC . '/class-wp-recovery-mode-key-service.php';
-require ABSPATH . WPINC . '/class-wp-recovery-mode-link-service.php';
-require ABSPATH . WPINC . '/class-wp-recovery-mode-email-service.php';
-require ABSPATH . WPINC . '/class-wp-recovery-mode.php';
require ABSPATH . WPINC . '/error-protection.php';
require ABSPATH . WPINC . '/default-constants.php';
require_once ABSPATH . WPINC . '/plugin.php';
@@ -106,21 +104,9 @@
wp_set_lang_dir();
// Load early WordPress files.
-require ABSPATH . WPINC . '/class-wp-list-util.php';
-require ABSPATH . WPINC . '/class-wp-token-map.php';
require ABSPATH . WPINC . '/formatting.php';
require ABSPATH . WPINC . '/meta.php';
require ABSPATH . WPINC . '/functions.php';
-require ABSPATH . WPINC . '/class-wp-meta-query.php';
-require ABSPATH . WPINC . '/class-wp-matchesmapregex.php';
-require ABSPATH . WPINC . '/class-wp.php';
-require ABSPATH . WPINC . '/class-wp-error.php';
-require ABSPATH . WPINC . '/pomo/mo.php';
-require ABSPATH . WPINC . '/l10n/class-wp-translation-controller.php';
-require ABSPATH . WPINC . '/l10n/class-wp-translations.php';
-require ABSPATH . WPINC . '/l10n/class-wp-translation-file.php';
-require ABSPATH . WPINC . '/l10n/class-wp-translation-file-mo.php';
-require ABSPATH . WPINC . '/l10n/class-wp-translation-file-php.php';
/**
* @since 0.71
@@ -149,8 +135,6 @@
// Initialize multisite if enabled.
if ( is_multisite() ) {
- require ABSPATH . WPINC . '/class-wp-site-query.php';
- require ABSPATH . WPINC . '/class-wp-network-query.php';
require ABSPATH . WPINC . '/ms-blogs.php';
require ABSPATH . WPINC . '/ms-settings.php';
} elseif ( ! defined( 'MULTISITE' ) ) {
@@ -166,33 +150,15 @@
// Load the L10n library.
require_once ABSPATH . WPINC . '/l10n.php';
-require_once ABSPATH . WPINC . '/class-wp-textdomain-registry.php';
-require_once ABSPATH . WPINC . '/class-wp-locale.php';
-require_once ABSPATH . WPINC . '/class-wp-locale-switcher.php';
// Run the installer if WordPress is not installed.
wp_not_installed();
// Load most of WordPress.
-require ABSPATH . WPINC . '/class-wp-walker.php';
-require ABSPATH . WPINC . '/class-wp-ajax-response.php';
require ABSPATH . WPINC . '/capabilities.php';
-require ABSPATH . WPINC . '/class-wp-roles.php';
-require ABSPATH . WPINC . '/class-wp-role.php';
-require ABSPATH . WPINC . '/class-wp-user.php';
-require ABSPATH . WPINC . '/class-wp-query.php';
require ABSPATH . WPINC . '/query.php';
-require ABSPATH . WPINC . '/class-wp-date-query.php';
require ABSPATH . WPINC . '/theme.php';
-require ABSPATH . WPINC . '/class-wp-theme.php';
-require ABSPATH . WPINC . '/class-wp-theme-json-schema.php';
-require ABSPATH . WPINC . '/class-wp-theme-json-data.php';
-require ABSPATH . WPINC . '/class-wp-theme-json.php';
-require ABSPATH . WPINC . '/class-wp-theme-json-resolver.php';
-require ABSPATH . WPINC . '/class-wp-duotone.php';
require ABSPATH . WPINC . '/global-styles-and-settings.php';
-require ABSPATH . WPINC . '/class-wp-block-template.php';
-require ABSPATH . WPINC . '/class-wp-block-templates-registry.php';
require ABSPATH . WPINC . '/block-template-utils.php';
require ABSPATH . WPINC . '/block-template.php';
require ABSPATH . WPINC . '/theme-templates.php';
@@ -200,35 +166,21 @@
require ABSPATH . WPINC . '/template.php';
require ABSPATH . WPINC . '/https-detection.php';
require ABSPATH . WPINC . '/https-migration.php';
-require ABSPATH . WPINC . '/class-wp-user-request.php';
require ABSPATH . WPINC . '/user.php';
-require ABSPATH . WPINC . '/class-wp-user-query.php';
-require ABSPATH . WPINC . '/class-wp-session-tokens.php';
-require ABSPATH . WPINC . '/class-wp-user-meta-session-tokens.php';
require ABSPATH . WPINC . '/general-template.php';
require ABSPATH . WPINC . '/link-template.php';
require ABSPATH . WPINC . '/author-template.php';
require ABSPATH . WPINC . '/robots-template.php';
require ABSPATH . WPINC . '/post.php';
-require ABSPATH . WPINC . '/class-walker-page.php';
-require ABSPATH . WPINC . '/class-walker-page-dropdown.php';
-require ABSPATH . WPINC . '/class-wp-post-type.php';
-require ABSPATH . WPINC . '/class-wp-post.php';
require ABSPATH . WPINC . '/post-template.php';
require ABSPATH . WPINC . '/revision.php';
require ABSPATH . WPINC . '/post-formats.php';
require ABSPATH . WPINC . '/post-thumbnail-template.php';
require ABSPATH . WPINC . '/category.php';
-require ABSPATH . WPINC . '/class-walker-category.php';
-require ABSPATH . WPINC . '/class-walker-category-dropdown.php';
require ABSPATH . WPINC . '/category-template.php';
require ABSPATH . WPINC . '/comment.php';
-require ABSPATH . WPINC . '/class-wp-comment.php';
-require ABSPATH . WPINC . '/class-wp-comment-query.php';
-require ABSPATH . WPINC . '/class-walker-comment.php';
require ABSPATH . WPINC . '/comment-template.php';
require ABSPATH . WPINC . '/rewrite.php';
-require ABSPATH . WPINC . '/class-wp-rewrite.php';
require ABSPATH . WPINC . '/feed.php';
require ABSPATH . WPINC . '/bookmark.php';
require ABSPATH . WPINC . '/bookmark-template.php';
@@ -237,128 +189,19 @@
require ABSPATH . WPINC . '/deprecated.php';
require ABSPATH . WPINC . '/script-loader.php';
require ABSPATH . WPINC . '/taxonomy.php';
-require ABSPATH . WPINC . '/class-wp-taxonomy.php';
-require ABSPATH . WPINC . '/class-wp-term.php';
-require ABSPATH . WPINC . '/class-wp-term-query.php';
-require ABSPATH . WPINC . '/class-wp-tax-query.php';
require ABSPATH . WPINC . '/update.php';
require ABSPATH . WPINC . '/canonical.php';
require ABSPATH . WPINC . '/shortcodes.php';
require ABSPATH . WPINC . '/embed.php';
-require ABSPATH . WPINC . '/class-wp-embed.php';
-require ABSPATH . WPINC . '/class-wp-oembed.php';
-require ABSPATH . WPINC . '/class-wp-oembed-controller.php';
require ABSPATH . WPINC . '/media.php';
require ABSPATH . WPINC . '/http.php';
require ABSPATH . WPINC . '/html-api/html5-named-character-references.php';
-require ABSPATH . WPINC . '/html-api/class-wp-html-attribute-token.php';
-require ABSPATH . WPINC . '/html-api/class-wp-html-span.php';
-require ABSPATH . WPINC . '/html-api/class-wp-html-doctype-info.php';
-require ABSPATH . WPINC . '/html-api/class-wp-html-text-replacement.php';
-require ABSPATH . WPINC . '/html-api/class-wp-html-decoder.php';
-require ABSPATH . WPINC . '/html-api/class-wp-html-tag-processor.php';
-require ABSPATH . WPINC . '/html-api/class-wp-html-unsupported-exception.php';
-require ABSPATH . WPINC . '/html-api/class-wp-html-active-formatting-elements.php';
-require ABSPATH . WPINC . '/html-api/class-wp-html-open-elements.php';
-require ABSPATH . WPINC . '/html-api/class-wp-html-token.php';
-require ABSPATH . WPINC . '/html-api/class-wp-html-stack-event.php';
-require ABSPATH . WPINC . '/html-api/class-wp-html-processor-state.php';
-require ABSPATH . WPINC . '/html-api/class-wp-html-processor.php';
-require ABSPATH . WPINC . '/class-wp-http.php';
-require ABSPATH . WPINC . '/class-wp-http-streams.php';
-require ABSPATH . WPINC . '/class-wp-http-curl.php';
-require ABSPATH . WPINC . '/class-wp-http-proxy.php';
-require ABSPATH . WPINC . '/class-wp-http-cookie.php';
-require ABSPATH . WPINC . '/class-wp-http-encoding.php';
-require ABSPATH . WPINC . '/class-wp-http-response.php';
-require ABSPATH . WPINC . '/class-wp-http-requests-response.php';
-require ABSPATH . WPINC . '/class-wp-http-requests-hooks.php';
require ABSPATH . WPINC . '/widgets.php';
-require ABSPATH . WPINC . '/class-wp-widget.php';
-require ABSPATH . WPINC . '/class-wp-widget-factory.php';
require ABSPATH . WPINC . '/nav-menu-template.php';
require ABSPATH . WPINC . '/nav-menu.php';
require ABSPATH . WPINC . '/admin-bar.php';
-require ABSPATH . WPINC . '/class-wp-application-passwords.php';
require ABSPATH . WPINC . '/rest-api.php';
-require ABSPATH . WPINC . '/rest-api/class-wp-rest-server.php';
-require ABSPATH . WPINC . '/rest-api/class-wp-rest-response.php';
-require ABSPATH . WPINC . '/rest-api/class-wp-rest-request.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-posts-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-attachments-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-global-styles-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-post-types-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-post-statuses-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-revisions-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-global-styles-revisions-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-template-revisions-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-autosaves-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-template-autosaves-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-taxonomies-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-terms-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-menu-items-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-menus-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-menu-locations-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-users-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-comments-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-search-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-blocks-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-block-types-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-block-renderer-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-settings-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-themes-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-plugins-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-block-directory-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-edit-site-export-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-pattern-directory-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-block-patterns-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-block-pattern-categories-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-application-passwords-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-site-health-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-sidebars-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-widget-types-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-widgets-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-templates-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-url-details-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-navigation-fallback-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-font-families-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-font-faces-controller.php';
-require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-font-collections-controller.php';
-require ABSPATH . WPINC . '/rest-api/fields/class-wp-rest-meta-fields.php';
-require ABSPATH . WPINC . '/rest-api/fields/class-wp-rest-comment-meta-fields.php';
-require ABSPATH . WPINC . '/rest-api/fields/class-wp-rest-post-meta-fields.php';
-require ABSPATH . WPINC . '/rest-api/fields/class-wp-rest-term-meta-fields.php';
-require ABSPATH . WPINC . '/rest-api/fields/class-wp-rest-user-meta-fields.php';
-require ABSPATH . WPINC . '/rest-api/search/class-wp-rest-search-handler.php';
-require ABSPATH . WPINC . '/rest-api/search/class-wp-rest-post-search-handler.php';
-require ABSPATH . WPINC . '/rest-api/search/class-wp-rest-term-search-handler.php';
-require ABSPATH . WPINC . '/rest-api/search/class-wp-rest-post-format-search-handler.php';
require ABSPATH . WPINC . '/sitemaps.php';
-require ABSPATH . WPINC . '/sitemaps/class-wp-sitemaps.php';
-require ABSPATH . WPINC . '/sitemaps/class-wp-sitemaps-index.php';
-require ABSPATH . WPINC . '/sitemaps/class-wp-sitemaps-provider.php';
-require ABSPATH . WPINC . '/sitemaps/class-wp-sitemaps-registry.php';
-require ABSPATH . WPINC . '/sitemaps/class-wp-sitemaps-renderer.php';
-require ABSPATH . WPINC . '/sitemaps/class-wp-sitemaps-stylesheet.php';
-require ABSPATH . WPINC . '/sitemaps/providers/class-wp-sitemaps-posts.php';
-require ABSPATH . WPINC . '/sitemaps/providers/class-wp-sitemaps-taxonomies.php';
-require ABSPATH . WPINC . '/sitemaps/providers/class-wp-sitemaps-users.php';
-require ABSPATH . WPINC . '/class-wp-block-bindings-source.php';
-require ABSPATH . WPINC . '/class-wp-block-bindings-registry.php';
-require ABSPATH . WPINC . '/class-wp-block-editor-context.php';
-require ABSPATH . WPINC . '/class-wp-block-type.php';
-require ABSPATH . WPINC . '/class-wp-block-pattern-categories-registry.php';
-require ABSPATH . WPINC . '/class-wp-block-patterns-registry.php';
-require ABSPATH . WPINC . '/class-wp-block-styles-registry.php';
-require ABSPATH . WPINC . '/class-wp-block-type-registry.php';
-require ABSPATH . WPINC . '/class-wp-block.php';
-require ABSPATH . WPINC . '/class-wp-block-list.php';
-require ABSPATH . WPINC . '/class-wp-block-parser-block.php';
-require ABSPATH . WPINC . '/class-wp-block-parser-frame.php';
-require ABSPATH . WPINC . '/class-wp-block-parser.php';
-require ABSPATH . WPINC . '/class-wp-classic-to-block-menu-converter.php';
-require ABSPATH . WPINC . '/class-wp-navigation-fallback.php';
require ABSPATH . WPINC . '/block-bindings.php';
require ABSPATH . WPINC . '/block-bindings/pattern-overrides.php';
require ABSPATH . WPINC . '/block-bindings/post-meta.php';
@@ -366,7 +209,6 @@
require ABSPATH . WPINC . '/blocks/index.php';
require ABSPATH . WPINC . '/block-editor.php';
require ABSPATH . WPINC . '/block-patterns.php';
-require ABSPATH . WPINC . '/class-wp-block-supports.php';
require ABSPATH . WPINC . '/block-supports/utils.php';
require ABSPATH . WPINC . '/block-supports/align.php';
require ABSPATH . WPINC . '/block-supports/custom-classname.php';
@@ -385,23 +227,9 @@
require ABSPATH . WPINC . '/block-supports/background.php';
require ABSPATH . WPINC . '/block-supports/block-style-variations.php';
require ABSPATH . WPINC . '/style-engine.php';
-require ABSPATH . WPINC . '/style-engine/class-wp-style-engine.php';
-require ABSPATH . WPINC . '/style-engine/class-wp-style-engine-css-declarations.php';
-require ABSPATH . WPINC . '/style-engine/class-wp-style-engine-css-rule.php';
-require ABSPATH . WPINC . '/style-engine/class-wp-style-engine-css-rules-store.php';
-require ABSPATH . WPINC . '/style-engine/class-wp-style-engine-processor.php';
-require ABSPATH . WPINC . '/fonts/class-wp-font-face-resolver.php';
-require ABSPATH . WPINC . '/fonts/class-wp-font-collection.php';
-require ABSPATH . WPINC . '/fonts/class-wp-font-face.php';
-require ABSPATH . WPINC . '/fonts/class-wp-font-library.php';
-require ABSPATH . WPINC . '/fonts/class-wp-font-utils.php';
require ABSPATH . WPINC . '/fonts.php';
-require ABSPATH . WPINC . '/class-wp-script-modules.php';
require ABSPATH . WPINC . '/script-modules.php';
-require ABSPATH . WPINC . '/interactivity-api/class-wp-interactivity-api.php';
-require ABSPATH . WPINC . '/interactivity-api/class-wp-interactivity-api-directives-processor.php';
require ABSPATH . WPINC . '/interactivity-api/interactivity-api.php';
-require ABSPATH . WPINC . '/class-wp-plugin-dependencies.php';
add_action( 'after_setup_theme', array( wp_script_modules(), 'add_hooks' ) );
add_action( 'after_setup_theme', array( wp_interactivity(), 'add_hooks' ) );
@@ -680,9 +508,6 @@
do_action( 'after_setup_theme' );
// Create an instance of WP_Site_Health so that Cron events may fire.
-if ( ! class_exists( 'WP_Site_Health' ) ) {
- require_once ABSPATH . 'wp-admin/includes/class-wp-site-health.php';
-}
WP_Site_Health::get_instance();
// Set up current user.
diff --git a/src/xmlrpc.php b/src/xmlrpc.php
index 592902085712f..7df9e923cadac 100644
--- a/src/xmlrpc.php
+++ b/src/xmlrpc.php
@@ -62,8 +62,6 @@
}
require_once ABSPATH . 'wp-admin/includes/admin.php';
-require_once ABSPATH . WPINC . '/class-IXR.php';
-require_once ABSPATH . WPINC . '/class-wp-xmlrpc-server.php';
/**
* Posts submitted via the XML-RPC interface get that title
diff --git a/tests/phpunit/includes/abstract-testcase.php b/tests/phpunit/includes/abstract-testcase.php
index 224929eb377a8..67ecb8faef4ae 100644
--- a/tests/phpunit/includes/abstract-testcase.php
+++ b/tests/phpunit/includes/abstract-testcase.php
@@ -64,6 +64,8 @@ public static function set_up_before_class() {
parent::set_up_before_class();
+ require_once ABSPATH . 'wp-includes/class-wp-autoload.php';
+
$wpdb->suppress_errors = false;
$wpdb->show_errors = true;
$wpdb->db_connect();
diff --git a/tests/phpunit/includes/testcase-xmlrpc.php b/tests/phpunit/includes/testcase-xmlrpc.php
index b27186d88be9b..2b89fbcd854fd 100644
--- a/tests/phpunit/includes/testcase-xmlrpc.php
+++ b/tests/phpunit/includes/testcase-xmlrpc.php
@@ -1,7 +1,5 @@
user->create( array( 'role' => 'editor' ) );
self::$user_ids[] = self::$editor_id;
@@ -698,7 +692,6 @@ public function test_new_user_link_does_not_exist_for_user_without_create_or_pro
*/
public function test_customize_link() {
global $wp_customize;
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
$uuid = wp_generate_uuid4();
$this->go_to( home_url( "/?customize_changeset_uuid=$uuid" ) );
wp_set_current_user( self::$admin_id );
diff --git a/tests/phpunit/tests/ajax/wpAjaxCropImage.php b/tests/phpunit/tests/ajax/wpAjaxCropImage.php
index 3a23f3a425b50..5b99d371b45f0 100644
--- a/tests/phpunit/tests/ajax/wpAjaxCropImage.php
+++ b/tests/phpunit/tests/ajax/wpAjaxCropImage.php
@@ -4,8 +4,6 @@
* Admin Ajax functions to be tested.
*/
require_once ABSPATH . 'wp-admin/includes/ajax-actions.php';
-require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-base.php';
-require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-direct.php';
/**
* Class for testing ajax crop image functionality.
diff --git a/tests/phpunit/tests/ajax/wpCustomizeManager.php b/tests/phpunit/tests/ajax/wpCustomizeManager.php
index 15ee1f0d5c639..f04ec64b560ef 100644
--- a/tests/phpunit/tests/ajax/wpCustomizeManager.php
+++ b/tests/phpunit/tests/ajax/wpCustomizeManager.php
@@ -48,14 +48,6 @@ public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
self::$admin_user_id = $factory->user->create( array( 'role' => 'administrator' ) );
}
- /**
- * Set up the test fixture.
- */
- public function set_up() {
- parent::set_up();
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
- }
-
/**
* Tear down.
*/
diff --git a/tests/phpunit/tests/ajax/wpCustomizeNavMenus.php b/tests/phpunit/tests/ajax/wpCustomizeNavMenus.php
index 1dfe5f684d01e..ae953f29b909d 100644
--- a/tests/phpunit/tests/ajax/wpCustomizeNavMenus.php
+++ b/tests/phpunit/tests/ajax/wpCustomizeNavMenus.php
@@ -52,7 +52,6 @@ public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
*/
public function set_up() {
parent::set_up();
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
global $wp_customize;
$this->wp_customize = new WP_Customize_Manager();
diff --git a/tests/phpunit/tests/auth.php b/tests/phpunit/tests/auth.php
index 5c196b499fcce..1a68f4462d272 100644
--- a/tests/phpunit/tests/auth.php
+++ b/tests/phpunit/tests/auth.php
@@ -33,9 +33,7 @@ public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
)
);
- self::$user_id = self::$_user->ID;
-
- require_once ABSPATH . WPINC . '/class-phpass.php';
+ self::$user_id = self::$_user->ID;
self::$wp_hasher = new PasswordHash( 8, true );
}
diff --git a/tests/phpunit/tests/autoloader-classmap.php b/tests/phpunit/tests/autoloader-classmap.php
new file mode 100644
index 0000000000000..babe05bb5ee8b
--- /dev/null
+++ b/tests/phpunit/tests/autoloader-classmap.php
@@ -0,0 +1,173 @@
+assertSame( strtolower( $class_name ), $class_name, "Class name '$class_name' is not lowercase." );
+ }
+
+ /**
+ * Data provider for test_autoloader_classmap_is_lowercase.
+ *
+ * @return array Data provider.
+ */
+ public function data_autoloader_classmap_is_lowercase() {
+ $class_names = array_keys( WP_Autoload::CLASSES_PATHS );
+ return $this->text_array_to_dataprovider( $class_names );
+ }
+
+ /**
+ * Tests that all files in the classmap exist.
+ *
+ * @covers WP_Autoload::CLASSES_PATHS
+ *
+ * @dataProvider data_autoloader_classmap_files_exist
+ *
+ * @param string $file_path File path relative to WP root directory.
+ */
+ public function test_autoloader_classmap_files_exist( $file_path ) {
+ $this->assertFileExists( ABSPATH . $file_path );
+ }
+
+ /**
+ * Data provider for test_autoloader_classmap_files_exist.
+ *
+ * @return array Data provider.
+ */
+ public function data_autoloader_classmap_files_exist() {
+ $file_paths = array_unique( array_values( WP_Autoload::CLASSES_PATHS ) );
+ return $this->text_array_to_dataprovider( $file_paths );
+ }
+
+ /**
+ * Tests that all classes in the classmap are in the correct file.
+ *
+ * @covers WP_Autoload::CLASSES_PATHS
+ *
+ * @dataProvider data_autoloader_classmap_is_in_correct_file
+ *
+ * @param string $class_name Class name.
+ * @param string $file_path File path relative to WP root directory.
+ */
+ public function test_autoloader_classmap_is_in_correct_file( $class_name, $file_path ) {
+ $this->assertTrue(
+ str_contains(
+ strtolower( file_get_contents( ABSPATH . $file_path ) ),
+ "class $class_name"
+ )
+ );
+ }
+
+ /**
+ * Data provider for test_autoloader_classmap_is_in_correct_file.
+ *
+ * @return array Data provider.
+ */
+ public function data_autoloader_classmap_is_in_correct_file() {
+ $data = array();
+ foreach ( WP_Autoload::CLASSES_PATHS as $class_name => $file_path ) {
+ $data[ $class_name ] = array(
+ 'class_name' => $class_name,
+ 'file_path' => $file_path,
+ );
+ }
+
+ return $data;
+ }
+
+ /**
+ * Tests that all `class-*.php` files in the WP core directory are in the classmap.
+ *
+ * @covers WP_Autoload::CLASSES_PATHS
+ *
+ * @dataProvider data_autoloader_class_files_exist_in_classmap
+ *
+ * @param string $class_name Class name.
+ * @param string $file_path File path relative to WP root directory.
+ */
+ public function test_autoloader_class_files_exist_in_classmap( $class_name, $file_path ) {
+ $this->assertArrayHasKey(
+ $class_name,
+ WP_Autoload::CLASSES_PATHS,
+ "Class '$class_name' is missing from the classmap."
+ );
+ }
+
+ /**
+ * Data provider for test_autoloader_class_files_exist_in_classmap.
+ *
+ * @return array Data provider.
+ */
+ public function data_autoloader_class_files_exist_in_classmap() {
+ $files = $this->get_all_wp_class_files();
+ $data = array();
+ foreach ( $files as $class_name => $file_path ) {
+ $data[ $class_name ] = array(
+ 'class_name' => $class_name,
+ 'file_path' => $file_path,
+ );
+ }
+ return $data;
+ }
+
+ /**
+ * Gets all `class-*.php` files in the WP core directory.
+ *
+ * @return array
+ */
+ public function get_all_wp_class_files() {
+ static $files = array();
+ if ( ! empty( $files ) ) {
+ return $files;
+ }
+
+ $directory = new RecursiveDirectoryIterator( ABSPATH . WPINC );
+ $iterator = new RecursiveIteratorIterator( $directory );
+ $regex = new RegexIterator( $iterator, '/^.+\/class\-[a-z-]+\.php$/i', RecursiveRegexIterator::GET_MATCH );
+ $ltrim_length = strlen( trailingslashit( ABSPATH ) );
+
+ $package_paths_to_ignore = array(
+ 'wp-includes/class-requests.php', // 3rd-party library.
+ 'wp-includes/Requests/', // 3rd-party library.
+ 'wp-includes/sodium_compat/', // 3rd-party library.
+ 'wp-includes/class-avif-info.php', // 3rd-party library.
+ 'wp-includes/class-simplepie.php', // 3rd-party library.
+ 'wp-includes/class-snoopy.php', // Deprecated.
+ );
+
+ foreach ( $regex as $file ) {
+ $class_file = $file[0];
+ $relative_file = substr( $class_file, $ltrim_length );
+ foreach ( $package_paths_to_ignore as $package_path ) {
+ if ( str_contains( $relative_file, $package_path ) !== false ) {
+ continue 2;
+ }
+ }
+
+ $file_contents = file_get_contents( $class_file );
+ // Extract the class name from the file.
+ preg_match( '/^class\s+([a-zA-Z0-9_]+)/m', $file_contents, $matches );
+ if ( empty( $matches ) ) {
+ continue;
+ }
+ $class_name = strtolower( $matches[1] );
+ $files[ $class_name ] = $relative_file;
+ }
+
+ return $files;
+ }
+}
diff --git a/tests/phpunit/tests/category/walkerCategory.php b/tests/phpunit/tests/category/walkerCategory.php
index e13ce9bb1047a..245d86cb8afb7 100644
--- a/tests/phpunit/tests/category/walkerCategory.php
+++ b/tests/phpunit/tests/category/walkerCategory.php
@@ -19,8 +19,6 @@ class Tests_Category_Walker_Category extends WP_UnitTestCase {
public function set_up() {
parent::set_up();
- /** Walker_Category class */
- require_once ABSPATH . 'wp-includes/class-walker-category.php';
$this->walker = new Walker_Category();
}
diff --git a/tests/phpunit/tests/comment/wpHandleCommentSubmission.php b/tests/phpunit/tests/comment/wpHandleCommentSubmission.php
index bbba0735795fc..00a94eb457d9e 100644
--- a/tests/phpunit/tests/comment/wpHandleCommentSubmission.php
+++ b/tests/phpunit/tests/comment/wpHandleCommentSubmission.php
@@ -38,7 +38,6 @@ public static function wpTearDownAfterClass() {
public function set_up() {
parent::set_up();
- require_once ABSPATH . WPINC . '/class-phpass.php';
}
public function test_submitting_comment_to_invalid_post_returns_error() {
diff --git a/tests/phpunit/tests/compat/jsonEncodeDecode.php b/tests/phpunit/tests/compat/jsonEncodeDecode.php
index be51c6022b193..a3d54abf8de37 100644
--- a/tests/phpunit/tests/compat/jsonEncodeDecode.php
+++ b/tests/phpunit/tests/compat/jsonEncodeDecode.php
@@ -18,7 +18,6 @@ public function test_json_encode_decode() {
$this->setExpectedDeprecated( 'Services_JSON::strlen8' );
$this->setExpectedDeprecated( 'Services_JSON::substr8' );
- require_once ABSPATH . WPINC . '/class-json.php';
$json = new Services_JSON();
// Super basic test to verify Services_JSON is intact and working.
diff --git a/tests/phpunit/tests/customize/control.php b/tests/phpunit/tests/customize/control.php
index d472eacad920a..4c4e1f09628a8 100644
--- a/tests/phpunit/tests/customize/control.php
+++ b/tests/phpunit/tests/customize/control.php
@@ -23,7 +23,6 @@ class Test_WP_Customize_Control extends WP_UnitTestCase {
public function set_up() {
parent::set_up();
wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
$GLOBALS['wp_customize'] = new WP_Customize_Manager();
$this->wp_customize = $GLOBALS['wp_customize'];
}
diff --git a/tests/phpunit/tests/customize/custom-css-setting.php b/tests/phpunit/tests/customize/custom-css-setting.php
index 015b6308af306..5584bf1fd1687 100644
--- a/tests/phpunit/tests/customize/custom-css-setting.php
+++ b/tests/phpunit/tests/customize/custom-css-setting.php
@@ -29,7 +29,6 @@ class Test_WP_Customize_Custom_CSS_Setting extends WP_UnitTestCase {
*/
public function set_up() {
parent::set_up();
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
$user_id = self::factory()->user->create(
array(
diff --git a/tests/phpunit/tests/customize/manager.php b/tests/phpunit/tests/customize/manager.php
index 0f8ddb2d9bbf3..8025bdd72e99b 100644
--- a/tests/phpunit/tests/customize/manager.php
+++ b/tests/phpunit/tests/customize/manager.php
@@ -55,7 +55,6 @@ public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
*/
public function set_up() {
parent::set_up();
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
$this->manager = $this->instantiate();
}
@@ -3677,8 +3676,6 @@ public function test_sanitize_external_header_video_trim() {
}
}
-require_once ABSPATH . WPINC . '/class-wp-customize-setting.php';
-
/**
* Class Test_Dynamic_Customize_Setting
*
diff --git a/tests/phpunit/tests/customize/nav-menu-item-setting.php b/tests/phpunit/tests/customize/nav-menu-item-setting.php
index 22d4bc7de7de4..4cf5eb9b2bfc7 100644
--- a/tests/phpunit/tests/customize/nav-menu-item-setting.php
+++ b/tests/phpunit/tests/customize/nav-menu-item-setting.php
@@ -20,7 +20,6 @@ class Test_WP_Customize_Nav_Menu_Item_Setting extends WP_UnitTestCase {
*/
public function set_up() {
parent::set_up();
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
global $wp_customize;
diff --git a/tests/phpunit/tests/customize/nav-menu-setting.php b/tests/phpunit/tests/customize/nav-menu-setting.php
index 6d50c96ee0c62..bccadf8130626 100644
--- a/tests/phpunit/tests/customize/nav-menu-setting.php
+++ b/tests/phpunit/tests/customize/nav-menu-setting.php
@@ -21,7 +21,6 @@ class Test_WP_Customize_Nav_Menu_Setting extends WP_UnitTestCase {
*/
public function set_up() {
parent::set_up();
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
global $wp_customize;
diff --git a/tests/phpunit/tests/customize/nav-menus.php b/tests/phpunit/tests/customize/nav-menus.php
index e0c80d1a56fec..d7f2aa7c02af7 100644
--- a/tests/phpunit/tests/customize/nav-menus.php
+++ b/tests/phpunit/tests/customize/nav-menus.php
@@ -21,7 +21,6 @@ class Test_WP_Customize_Nav_Menus extends WP_UnitTestCase {
*/
public function set_up() {
parent::set_up();
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
global $wp_customize;
$this->wp_customize = new WP_Customize_Manager();
diff --git a/tests/phpunit/tests/customize/panel.php b/tests/phpunit/tests/customize/panel.php
index 40f198675a03a..60a827392f294 100644
--- a/tests/phpunit/tests/customize/panel.php
+++ b/tests/phpunit/tests/customize/panel.php
@@ -14,7 +14,6 @@ class Tests_WP_Customize_Panel extends WP_UnitTestCase {
public function set_up() {
parent::set_up();
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
$GLOBALS['wp_customize'] = new WP_Customize_Manager();
$this->manager = $GLOBALS['wp_customize'];
}
@@ -214,7 +213,6 @@ public function test_print_templates_custom() {
}
}
-require_once ABSPATH . WPINC . '/class-wp-customize-panel.php';
class Custom_Panel_Test extends WP_Customize_Panel {
public $type = 'titleless';
diff --git a/tests/phpunit/tests/customize/partial.php b/tests/phpunit/tests/customize/partial.php
index 9fc4a478a49b1..19484afd800ec 100644
--- a/tests/phpunit/tests/customize/partial.php
+++ b/tests/phpunit/tests/customize/partial.php
@@ -27,7 +27,6 @@ class Test_WP_Customize_Partial extends WP_UnitTestCase {
*/
public function set_up() {
parent::set_up();
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
$GLOBALS['wp_customize'] = new WP_Customize_Manager();
$this->wp_customize = $GLOBALS['wp_customize'];
if ( isset( $this->wp_customize->selective_refresh ) ) {
diff --git a/tests/phpunit/tests/customize/section.php b/tests/phpunit/tests/customize/section.php
index ea2d55b658cae..25dfc00af681a 100644
--- a/tests/phpunit/tests/customize/section.php
+++ b/tests/phpunit/tests/customize/section.php
@@ -21,7 +21,6 @@ public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
public function set_up() {
parent::set_up();
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
$GLOBALS['wp_customize'] = new WP_Customize_Manager();
$this->manager = $GLOBALS['wp_customize'];
}
@@ -222,7 +221,6 @@ public function test_print_templates_custom() {
}
}
-require_once ABSPATH . WPINC . '/class-wp-customize-section.php';
class Custom_Section_Test extends WP_Customize_Section {
public $type = 'titleless';
diff --git a/tests/phpunit/tests/customize/selective-refresh-ajax.php b/tests/phpunit/tests/customize/selective-refresh-ajax.php
index 39d3d45a707f9..79401f4b56999 100644
--- a/tests/phpunit/tests/customize/selective-refresh-ajax.php
+++ b/tests/phpunit/tests/customize/selective-refresh-ajax.php
@@ -38,7 +38,6 @@ public function set_up() {
add_filter( 'wp_doing_ajax', '__return_true' );
add_filter( 'wp_die_ajax_handler', array( $this, 'get_wp_die_handler' ), 1, 1 );
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
$GLOBALS['wp_customize'] = new WP_Customize_Manager();
$this->wp_customize = $GLOBALS['wp_customize'];
if ( isset( $this->wp_customize->selective_refresh ) ) {
diff --git a/tests/phpunit/tests/customize/selective-refresh.php b/tests/phpunit/tests/customize/selective-refresh.php
index af2239fe60a1b..64541cbf92204 100644
--- a/tests/phpunit/tests/customize/selective-refresh.php
+++ b/tests/phpunit/tests/customize/selective-refresh.php
@@ -27,7 +27,6 @@ class Test_WP_Customize_Selective_Refresh extends WP_UnitTestCase {
*/
public function set_up() {
parent::set_up();
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
$GLOBALS['wp_customize'] = new WP_Customize_Manager();
$this->wp_customize = $GLOBALS['wp_customize'];
if ( isset( $this->wp_customize->selective_refresh ) ) {
@@ -259,8 +258,6 @@ public function tear_down() {
}
}
-require_once ABSPATH . WPINC . '/customize/class-wp-customize-partial.php';
-
/**
* Class Tested_Custom_Partial
*/
diff --git a/tests/phpunit/tests/customize/setting.php b/tests/phpunit/tests/customize/setting.php
index 62861a27264ba..5ad39659bdbe2 100644
--- a/tests/phpunit/tests/customize/setting.php
+++ b/tests/phpunit/tests/customize/setting.php
@@ -19,7 +19,6 @@ class Tests_WP_Customize_Setting extends WP_UnitTestCase {
public function set_up() {
parent::set_up();
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
$GLOBALS['wp_customize'] = new WP_Customize_Manager();
$this->manager = $GLOBALS['wp_customize'];
$this->undefined = new stdClass();
diff --git a/tests/phpunit/tests/customize/widgets.php b/tests/phpunit/tests/customize/widgets.php
index 77b141944099a..ca3242335ad7b 100644
--- a/tests/phpunit/tests/customize/widgets.php
+++ b/tests/phpunit/tests/customize/widgets.php
@@ -22,7 +22,6 @@ class Tests_WP_Customize_Widgets extends WP_UnitTestCase {
public function set_up() {
parent::set_up();
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
add_theme_support( 'customize-selective-refresh-widgets' );
add_action( 'widgets_init', array( $this, 'remove_widgets_block_editor' ) );
diff --git a/tests/phpunit/tests/editor/wpEditors.php b/tests/phpunit/tests/editor/wpEditors.php
index c4e9e50515fda..e4696812ffa66 100644
--- a/tests/phpunit/tests/editor/wpEditors.php
+++ b/tests/phpunit/tests/editor/wpEditors.php
@@ -1,9 +1,5 @@
user->create( array( 'role' => 'administrator' ) ) );
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
$wp_customize = new WP_Customize_Manager();
$wp_customize->register_controls();
$wp_customize->start_previewing_theme();
@@ -202,7 +199,6 @@ public function test_customize_preview_wp_site_icon_dirty() {
global $wp_customize;
wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
$wp_customize = new WP_Customize_Manager();
$wp_customize->register_controls();
$wp_customize->start_previewing_theme();
diff --git a/tests/phpunit/tests/image/editor.php b/tests/phpunit/tests/image/editor.php
index 0ec837199bcbd..19613b2ed3870 100644
--- a/tests/phpunit/tests/image/editor.php
+++ b/tests/phpunit/tests/image/editor.php
@@ -15,8 +15,6 @@ class Tests_Image_Editor extends WP_Image_UnitTestCase {
* Setup test fixture
*/
public function set_up() {
- require_once ABSPATH . WPINC . '/class-wp-image-editor.php';
-
require_once DIR_TESTDATA . '/../includes/mock-image-editor.php';
// This needs to come after the mock image editor class is loaded.
diff --git a/tests/phpunit/tests/image/editorGd.php b/tests/phpunit/tests/image/editorGd.php
index 640561238a0a4..6ca0e5302c8f6 100644
--- a/tests/phpunit/tests/image/editorGd.php
+++ b/tests/phpunit/tests/image/editorGd.php
@@ -13,14 +13,6 @@ class Tests_Image_Editor_GD extends WP_Image_UnitTestCase {
public $editor_engine = 'WP_Image_Editor_GD';
- public function set_up() {
- require_once ABSPATH . WPINC . '/class-wp-image-editor.php';
- require_once ABSPATH . WPINC . '/class-wp-image-editor-gd.php';
-
- // This needs to come after the mock image editor class is loaded.
- parent::set_up();
- }
-
public function tear_down() {
$folder = DIR_TESTDATA . '/images/waffles-*.jpg';
diff --git a/tests/phpunit/tests/image/editorImagick.php b/tests/phpunit/tests/image/editorImagick.php
index 30747f69f1b62..a68b51c8f3346 100644
--- a/tests/phpunit/tests/image/editorImagick.php
+++ b/tests/phpunit/tests/image/editorImagick.php
@@ -14,8 +14,6 @@ class Tests_Image_Editor_Imagick extends WP_Image_UnitTestCase {
public $editor_engine = 'WP_Image_Editor_Imagick';
public function set_up() {
- require_once ABSPATH . WPINC . '/class-wp-image-editor.php';
- require_once ABSPATH . WPINC . '/class-wp-image-editor-imagick.php';
require_once DIR_TESTROOT . '/includes/class-wp-test-stream.php';
// This needs to come after the mock image editor class is loaded.
diff --git a/tests/phpunit/tests/image/functions.php b/tests/phpunit/tests/image/functions.php
index e895ec9dc8f7d..bc25632d7142f 100644
--- a/tests/phpunit/tests/image/functions.php
+++ b/tests/phpunit/tests/image/functions.php
@@ -13,10 +13,6 @@ class Tests_Image_Functions extends WP_UnitTestCase {
public function set_up() {
parent::set_up();
- require_once ABSPATH . WPINC . '/class-wp-image-editor.php';
- require_once ABSPATH . WPINC . '/class-wp-image-editor-gd.php';
- require_once ABSPATH . WPINC . '/class-wp-image-editor-imagick.php';
-
require_once DIR_TESTDATA . '/../includes/mock-image-editor.php';
// Ensure no legacy / failed tests detritus.
diff --git a/tests/phpunit/tests/image/header.php b/tests/phpunit/tests/image/header.php
index fce617fd7df4f..d6adff93f2c1c 100644
--- a/tests/phpunit/tests/image/header.php
+++ b/tests/phpunit/tests/image/header.php
@@ -1,5 +1,4 @@
walker = new Walker_Nav_Menu_Edit();
$this->_wp_nav_menu_max_depth = $_wp_nav_menu_max_depth;
diff --git a/tests/phpunit/tests/menu/walker-nav-menu.php b/tests/phpunit/tests/menu/walker-nav-menu.php
index 878bf12cc4c4b..85b3b792ecea4 100644
--- a/tests/phpunit/tests/menu/walker-nav-menu.php
+++ b/tests/phpunit/tests/menu/walker-nav-menu.php
@@ -26,7 +26,6 @@ public function set_up() {
parent::set_up();
/** Walker_Nav_Menu class */
- require_once ABSPATH . 'wp-includes/class-walker-nav-menu.php';
$this->walker = new Walker_Nav_Menu();
$this->orig_wp_nav_menu_max_depth = $_wp_nav_menu_max_depth;
diff --git a/tests/phpunit/tests/oembed/wpOembed.php b/tests/phpunit/tests/oembed/wpOembed.php
index 051a7efe3d847..04c8189728e28 100644
--- a/tests/phpunit/tests/oembed/wpOembed.php
+++ b/tests/phpunit/tests/oembed/wpOembed.php
@@ -14,7 +14,6 @@ class Tests_WP_oEmbed extends WP_UnitTestCase {
public function set_up() {
parent::set_up();
- require_once ABSPATH . WPINC . '/class-wp-oembed.php';
$this->oembed = _wp_oembed_get_object();
$this->pre_oembed_result_filtered = false;
diff --git a/tests/phpunit/tests/post/nav-menu.php b/tests/phpunit/tests/post/nav-menu.php
index d4ece1ff1776c..0cbef55dc6d7d 100644
--- a/tests/phpunit/tests/post/nav-menu.php
+++ b/tests/phpunit/tests/post/nav-menu.php
@@ -930,7 +930,6 @@ public function test_wp_delete_customize_changeset_dependent_auto_drafts() {
)
)
);
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
$wp_customize = new WP_Customize_Manager();
do_action( 'customize_register', $wp_customize );
$wp_customize->save_changeset_post(
diff --git a/tests/phpunit/tests/post/walkerPage.php b/tests/phpunit/tests/post/walkerPage.php
index d8a2312a54eff..521e98c648db2 100644
--- a/tests/phpunit/tests/post/walkerPage.php
+++ b/tests/phpunit/tests/post/walkerPage.php
@@ -16,8 +16,6 @@ class Tests_Post_Walker_Page extends WP_UnitTestCase {
public function set_up() {
parent::set_up();
- /** Walker_Page class */
- require_once ABSPATH . 'wp-includes/class-walker-page.php';
$this->walker = new Walker_Page();
}
diff --git a/tests/phpunit/tests/rest-api/rest-attachments-controller.php b/tests/phpunit/tests/rest-api/rest-attachments-controller.php
index 55ea686d22f25..cacf46f08d566 100644
--- a/tests/phpunit/tests/rest-api/rest-attachments-controller.php
+++ b/tests/phpunit/tests/rest-api/rest-attachments-controller.php
@@ -2531,7 +2531,6 @@ public function test_edit_image_returns_error_if_mismatched_src() {
* @since 5.5.0
*/
protected function setup_mock_editor() {
- require_once ABSPATH . WPINC . '/class-wp-image-editor.php';
require_once DIR_TESTDATA . '/../includes/mock-image-editor.php';
add_filter(
diff --git a/tests/phpunit/tests/theme.php b/tests/phpunit/tests/theme.php
index 5f9ef3959ead1..cdd0d5bc877ea 100644
--- a/tests/phpunit/tests/theme.php
+++ b/tests/phpunit/tests/theme.php
@@ -406,7 +406,6 @@ public function test_wp_keep_alive_customize_changeset_dependent_auto_drafts() {
),
);
wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
$wp_customize = new WP_Customize_Manager();
do_action( 'customize_register', $wp_customize );
diff --git a/tests/phpunit/tests/theme/customHeader.php b/tests/phpunit/tests/theme/customHeader.php
index b994d7f2dcfe5..c69eb626e947b 100644
--- a/tests/phpunit/tests/theme/customHeader.php
+++ b/tests/phpunit/tests/theme/customHeader.php
@@ -24,7 +24,6 @@ public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
public function set_up() {
parent::set_up();
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
$GLOBALS['wp_customize'] = new WP_Customize_Manager();
$this->customize_manager = $GLOBALS['wp_customize'];
diff --git a/tests/phpunit/tests/user/passwordHash.php b/tests/phpunit/tests/user/passwordHash.php
index db34969c71bb3..15aa16125ce21 100644
--- a/tests/phpunit/tests/user/passwordHash.php
+++ b/tests/phpunit/tests/user/passwordHash.php
@@ -7,12 +7,6 @@
*/
class Tests_User_PasswordHash extends WP_UnitTestCase {
- public static function set_up_before_class() {
- parent::set_up_before_class();
-
- require_once ABSPATH . WPINC . '/class-phpass.php';
- }
-
/**
* Tests that PasswordHash::gensalt_blowfish() does not throw a deprecation notice on PHP 8.1.
*
diff --git a/tests/phpunit/tests/widgets.php b/tests/phpunit/tests/widgets.php
index ab4115cff2e26..bc6f37b119af2 100644
--- a/tests/phpunit/tests/widgets.php
+++ b/tests/phpunit/tests/widgets.php
@@ -634,7 +634,6 @@ public function test_wp_widget_is_preview() {
$this->assertFalse( $widget->is_preview() );
wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
$wp_customize = new WP_Customize_Manager();
$wp_customize->start_previewing_theme();
diff --git a/tests/phpunit/tests/widgets/wpWidgetMedia.php b/tests/phpunit/tests/widgets/wpWidgetMedia.php
index a29636a138e0c..4eda51b80aac4 100644
--- a/tests/phpunit/tests/widgets/wpWidgetMedia.php
+++ b/tests/phpunit/tests/widgets/wpWidgetMedia.php
@@ -122,7 +122,6 @@ public function test_constructor_in_customize_preview() {
)
)
);
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
$wp_customize = new WP_Customize_Manager(
array(
'changeset_uuid' => wp_generate_uuid4(),
diff --git a/tests/phpunit/tests/widgets/wpWidgetText.php b/tests/phpunit/tests/widgets/wpWidgetText.php
index a1570da63a550..86fa3b12b0935 100644
--- a/tests/phpunit/tests/widgets/wpWidgetText.php
+++ b/tests/phpunit/tests/widgets/wpWidgetText.php
@@ -86,7 +86,6 @@ public function test__register_in_customize_preview() {
)
)
);
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
$wp_customize = new WP_Customize_Manager(
array(
'changeset_uuid' => wp_generate_uuid4(),
diff --git a/tests/phpunit/tests/xmlrpc/basic.php b/tests/phpunit/tests/xmlrpc/basic.php
index a56a721a07fc6..036e5722f3d7d 100644
--- a/tests/phpunit/tests/xmlrpc/basic.php
+++ b/tests/phpunit/tests/xmlrpc/basic.php
@@ -1,8 +1,6 @@