禁用WordPress Site Health(网站健康)检测项

WordPress 5.2 新增 Site Health(网站健康)功能,用于了解当前网站运行中有哪些问题需要改进,位置在WP后台→工具→Site Health,因目前没有WP完整简体中文版,打开后都是英文。

该功能源自 Site Health Tool Manager 插件,也就是插件的简化版。

为什么要集成网站健康检测功能,据说是为开发人员方便测试,有人说很有用,个人认为没有任何用处,暴露主机环境信息,另外不知道这玩意是否经常自己在后台偷偷运行检测,还是打开后再执行检测,试过一次就再也不想打开。

可以通过下面的方法有选择性地禁止某些项目检测或者禁止全部项目检测。

将下面的代码添加到当前主题函数模板 functions.php 中:

//禁用 PHP 版本检测,示例:function prefix_remove_site_health( $tests ) {	unset( $tests['direct']['php_version'] );//禁止PHP检测	return $tests;}add_filter( 'site_status_tests', 'prefix_remove_site_health' );

通过site_status_tests过滤器,返回时触发WP_Site_Health::get_tests()

注:$tests是一个数组。包括$tests['direct']$tests['async'],在加载站点健康状态之前,直接测试在 PHP 中运行,并且在页面加载之后通过 Ajax 调用触发异步测试。

禁用更多功能检测请对照: /wp-admin/includes/class-wp-site-health.php

例如:

unset( $tests['direct']['php_version'] );//禁止PHP检测 unset( $tests['direct']['wordpress_version'] );//禁止程序版本检测 unset( $tests['direct']['plugin_version'] );//禁止插件版本检测

一行一个,以此类推。

禁止全部代码:

function prefix_remove_site_health( $tests ) {	unset( $tests['direct']['php_version'] );	unset( $tests['direct']['wordpress_version'] );	unset( $tests['direct']['plugin_version'] );	unset( $tests['direct']['theme_version'] );	unset( $tests['direct']['sql_server'] );	unset( $tests['direct']['php_extensions'] );	unset( $tests['direct']['utf8mb4_support'] );	unset( $tests['direct']['https_status'] );	unset( $tests['direct']['ssl_support'] );	unset( $tests['direct']['scheduled_events'] );	unset( $tests['direct']['http_requests'] );	unset( $tests['direct']['is_in_debug_mode'] );	unset( $tests['direct']['dotorg_communication'] );	unset( $tests['direct']['background_updates'] );	unset( $tests['direct']['loopback_requests'] );	unset( $tests['direct']['rest_availability'] );	return $tests;} add_filter( 'site_status_tests', 'prefix_remove_site_health' );

检测项全部禁止后,你会看到 Site Health 检测结果显示100%,perfect ! ^-^

完全禁用Site Health 的方法暂时还木有。