Source
File: wp-admin/includes/class-wp-site-health.php
public static function get_tests() {
$tests = array(
'direct' => array(
'wordpress_version' => array(
'label' => __( 'WordPress Version' ),
'test' => 'wordpress_version',
),
'plugin_version' => array(
'label' => __( 'Plugin Versions' ),
'test' => 'plugin_version',
),
'theme_version' => array(
'label' => __( 'Theme Versions' ),
'test' => 'theme_version',
),
'php_version' => array(
'label' => __( 'PHP Version' ),
'test' => 'php_version',
),
'php_extensions' => array(
'label' => __( 'PHP Extensions' ),
'test' => 'php_extensions',
),
'php_default_timezone' => array(
'label' => __( 'PHP Default Timezone' ),
'test' => 'php_default_timezone',
),
'php_sessions' => array(
'label' => __( 'PHP Sessions' ),
'test' => 'php_sessions',
),
'sql_server' => array(
'label' => __( 'Database Server version' ),
'test' => 'sql_server',
),
'utf8mb4_support' => array(
'label' => __( 'MySQL utf8mb4 support' ),
'test' => 'utf8mb4_support',
),
'https_status' => array(
'label' => __( 'HTTPS status' ),
'test' => 'https_status',
),
'ssl_support' => array(
'label' => __( 'Secure communication' ),
'test' => 'ssl_support',
),
'scheduled_events' => array(
'label' => __( 'Scheduled events' ),
'test' => 'scheduled_events',
),
'http_requests' => array(
'label' => __( 'HTTP Requests' ),
'test' => 'http_requests',
),
'debug_enabled' => array(
'label' => __( 'Debugging enabled' ),
'test' => 'is_in_debug_mode',
),
'file_uploads' => array(
'label' => __( 'File uploads' ),
'test' => 'file_uploads',
),
'plugin_theme_auto_updates' => array(
'label' => __( 'Plugin and theme auto-updates' ),
'test' => 'plugin_theme_auto_updates',
),
),
'async' => array(
'dotorg_communication' => array(
'label' => __( 'Communication with WordPress.org' ),
'test' => 'dotorg_communication',
),
'background_updates' => array(
'label' => __( 'Background updates' ),
'test' => 'background_updates',
),
'loopback_requests' => array(
'label' => __( 'Loopback request' ),
'test' => 'loopback_requests',
),
),
);
// Conditionally include REST rules if the function for it exists.
if ( function_exists( 'rest_url' ) ) {
$tests['direct']['rest_availability'] = array(
'label' => __( 'REST API availability' ),
'test' => 'rest_availability',
);
}
/**
* Add or modify which site status tests are run on a site.
*
* The site health is determined by a set of tests based on best practices from
* both the WordPress Hosting Team, but also web standards in general.
*
* Some sites may not have the same requirements, for example the automatic update
* checks may be handled by a host, and are therefore disabled in core.
* Or maybe you want to introduce a new test, is caching enabled/disabled/stale for example.
*
* Tests may be added either as direct, or asynchronous ones. Any test that may require some time
* to complete should run asynchronously, to avoid extended loading periods within wp-admin.
*
* @since 5.2.0
*
* @param array $test_type {
* An associative array, where the `$test_type` is either `direct` or
* `async`, to declare if the test should run via Ajax calls after page load.
*
* @type array $identifier {
* `$identifier` should be a unique identifier for the test that should run.
* Plugins and themes are encouraged to prefix test identifiers with their slug
* to avoid any collisions between tests.
*
* @type string $label A friendly label for your test to identify it by.
* @type mixed $test A callable to perform a direct test, or a string Ajax action to be called
* to perform an async test.
* }
* }
*/
$tests = apply_filters( 'site_status_tests', $tests );
// Ensure that the filtered tests contain the required array keys.
$tests = array_merge(
array(
'direct' => array(),
'async' => array(),
),
$tests
);
return $tests;
}