在WordPress的5.2版中,添加了站点运行状况检查。
它允许用户获取有关可能出现的问题以及如何创建调试信息集的信息。
在许多情况下,您可能希望从子站点上无法访问站点运行状况检查页面,以确保客户端不必处理因问题引起的误解。
可以从站点上显示的wp-admin中删除“站点运行状况”检查页面。通常情况下,它将显示为工具> Site Health 。
网上大部分是用以下代码来达到禁用的效果
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' );
使用上述代码之后只是将相应检测功能禁用,但是还是能访问/wp-admin/site-health.php这个页面。
下面我将使用另外一种方式来达到禁用的效果
将下述代码复制到functions.php里面
// 禁用管理菜单
function escode_remove_site_health_menu() {
remove_submenu_page( 'tools.php', 'site-health.php' );
}
add_action( 'admin_menu', 'escode_remove_site_health_menu' );
//阻止健康检查页面
function wp_block_site_health_access() {
if ( is_admin() ) {
$screen = get_current_screen();
// 判断id是否为site health
if ( 'site-health' == $screen->id ) {
wp_redirect( admin_url() );
exit;
}
}
}
add_action( 'current_screen', 'wp_block_site_health_access' );
使用上述代码之后将直接移除 site-health.php 页面,并且如果访问这个页面将会重定向到wp-admin页面。 这就意味着你看不到子站点上的站点运行状况检查器页面,也无法查看它。