site_status_tests filter-hookWP 5.2.0

Filters 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 and 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.

Usage

add_filter( 'site_status_tests', 'wp_kama_site_status_tests_filter' );

/**
 * Function for `site_status_tests` filter-hook.
 * 
 * @param array[] $tests An associative array of direct and asynchronous tests.
 *
 * @return array[]
 */
function wp_kama_site_status_tests_filter( $tests ){

	// filter...
	return $tests;
}
$tests(array[])

An associative array of direct and asynchronous tests.

  • direct(array[])
    An array of direct tests.

    • ...$identifier(array)
      $identifier should be a unique identifier for the test. Plugins and themes are encouraged to prefix test identifiers with their slug to avoid collisions between tests.

      • label(string)
        The friendly label to identify the test.

      • test(callable)
        The callback function that runs the test and returns its result.

      • skip_cron(true|false)
        Whether to skip this test when running as cron.
  • async(array[])
    An array of asynchronous tests.

    • ...$identifier(array)
      $identifier should be a unique identifier for the test. Plugins and themes are encouraged to prefix test identifiers with their slug to avoid collisions between tests.

      • label(string)
        The friendly label to identify the test.

      • test(string)
        An admin-ajax.php action to be called to perform the test, or if $has_rest is true, a URL to a REST API endpoint to perform the test.

      • has_rest(true|false)
        Whether the $test property points to a REST API endpoint.

      • skip_cron(true|false)
        Whether to skip this test when running as cron.

      • async_direct_test(callable)
        A manner of directly calling the test marked as asynchronous, as the scheduled event can not authenticate, and endpoints may require authentication.

Changelog

Since 5.2.0 Introduced.
Since 5.6.0 Added the async_direct_test array key for asynchronous tests. Added the skip_cron array key for all tests.

Where the hook is called

WP_Site_Health::get_tests()
site_status_tests
wp-admin/includes/class-wp-site-health.php 2890
$tests = apply_filters( 'site_status_tests', $tests );

Where the hook is used in WordPress

Usage not found.