mirror of
https://github.com/WordPress/WordPress.git
synced 2024-12-22 09:07:59 +01:00
0a9d61ab63
The Site Health tool serves two purposes: - Provide site owners with information to improve the performance, reliability, and security of their site. - Collect comprehensive debug information about the site. By encouraging site owners to maintain their site and adhere to modern best practices, we ultimately improve the software hygeine of both the WordPress ecosystem, and the open internet as a whole. Props Clorith, hedgefield, melchoyce, xkon, karmatosed, jordesign, earnjam, ianbelanger, wpscholar, desrosj, pedromendonca, peterbooker, jcastaneda, garyj, soean, pento, timothyblynjacobs, zodiac1978, dgroddick, garrett-eclipse, netweb, tobifjellner, pixolin, afercia, joedolson, birgire. See #46573. Built from https://develop.svn.wordpress.org/trunk@44986 git-svn-id: http://core.svn.wordpress.org/trunk@44817 1a063a9b-81f0-0310-95a4-ce76da25c4cd
169 lines
5.4 KiB
PHP
169 lines
5.4 KiB
PHP
<?php
|
|
/**
|
|
* Tools Administration Screen.
|
|
*
|
|
* @package WordPress
|
|
* @subpackage Administration
|
|
*/
|
|
|
|
/** WordPress Administration Bootstrap */
|
|
require_once( dirname( __FILE__ ) . '/admin.php' );
|
|
|
|
if ( ! current_user_can( 'install_plugins' ) ) {
|
|
wp_die( __( 'Sorry, you do not have permission to access the debug data.' ), '', array( 'reponse' => 401 ) );
|
|
}
|
|
|
|
wp_enqueue_style( 'site-health' );
|
|
wp_enqueue_script( 'site-health' );
|
|
|
|
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 = new WP_Site_Health();
|
|
|
|
require_once( ABSPATH . 'wp-admin/admin-header.php' );
|
|
?>
|
|
|
|
<div class="wrap health-check-header">
|
|
<div class="title-section">
|
|
<h1>
|
|
<?php _ex( 'Site Health', 'Menu, Section and Page Title' ); ?>
|
|
</h1>
|
|
|
|
<div id="progressbar" class="loading" data-pct="0" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" aria-valuetext="<?php esc_attr_e( 'Site tests are running, please wait a moment.' ); ?>">
|
|
<svg width="100%" height="100%" viewBox="0 0 200 200" version="1.1" xmlns="http://www.w3.org/2000/svg">
|
|
<circle r="90" cx="100" cy="100" fill="transparent" stroke-dasharray="565.48" stroke-dashoffset="0"></circle>
|
|
<circle id="bar" r="90" cx="100" cy="100" fill="transparent" stroke-dasharray="565.48" stroke-dashoffset="0"></circle>
|
|
</svg>
|
|
</div>
|
|
</div>
|
|
|
|
<nav class="tabs-wrapper" aria-label="<?php esc_attr_e( 'Secondary menu' ); ?>">
|
|
<a href="<?php echo esc_url( admin_url( 'site-health.php' ) ); ?>" class="tab">
|
|
<?php _e( 'Status' ); ?>
|
|
</a>
|
|
|
|
<a href="<?php echo esc_url( admin_url( 'site-health.php?tab=debug' ) ); ?>" class="tab active" aria-current="true">
|
|
<?php _e( 'Info' ); ?>
|
|
</a>
|
|
</nav>
|
|
|
|
<div class="wp-clearfix"></div>
|
|
</div>
|
|
|
|
<div class="wrap health-check-body">
|
|
<?php
|
|
WP_Debug_Data::check_for_updates();
|
|
|
|
$info = WP_Debug_Data::debug_data();
|
|
?>
|
|
|
|
<h2>
|
|
<?php _e( 'Site Info' ); ?>
|
|
</h2>
|
|
|
|
<p>
|
|
<?php _e( 'You can export the information on this page so it can be easily copied and pasted in support requests such as on the WordPress.org forums, or shared with your website / theme / plugin developers.' ); ?>
|
|
</p>
|
|
|
|
<div class="system-information-copy-wrapper">
|
|
<textarea id="system-information-default-copy-field" readonly><?php WP_Debug_Data::textarea_format( $info ); ?></textarea>
|
|
|
|
<?php
|
|
if ( 0 !== strpos( get_locale(), 'en' ) ) :
|
|
|
|
$english_info = WP_Debug_Data::debug_data( 'en_US' );
|
|
?>
|
|
<textarea id="system-information-english-copy-field" readonly><?php WP_Debug_Data::textarea_format( $english_info ); ?></textarea>
|
|
|
|
<?php endif; ?>
|
|
|
|
<div class="copy-button-wrapper">
|
|
<button type="button" class="button button-primary health-check-copy-field" data-copy-field="default"><?php _e( 'Copy to clipboard' ); ?></button>
|
|
<span class="copy-field-success" aria-hidden="true">Copied!</span>
|
|
</div>
|
|
<?php if ( 0 !== strpos( get_locale(), 'en' ) ) : ?>
|
|
<div class="copy-button-wrapper">
|
|
<button type="button" class="button health-check-copy-field" data-copy-field="english"><?php _e( 'Copy to clipboard (English)' ); ?></button>
|
|
<span class="copy-field-success" aria-hidden="true">Copied!</span>
|
|
</div>
|
|
<?php endif; ?>
|
|
</div>
|
|
|
|
<dl id="health-check-debug" role="presentation" class="health-check-accordion">
|
|
|
|
<?php
|
|
foreach ( $info as $section => $details ) {
|
|
if ( ! isset( $details['fields'] ) || empty( $details['fields'] ) ) {
|
|
continue;
|
|
}
|
|
?>
|
|
<dt role="heading" aria-level="3">
|
|
<button aria-expanded="false" class="health-check-accordion-trigger" aria-controls="health-check-accordion-block-<?php echo esc_attr( $section ); ?>" id="health-check-accordion-heading-<?php echo esc_attr( $section ); ?>" type="button">
|
|
<span class="title">
|
|
<?php echo esc_html( $details['label'] ); ?>
|
|
|
|
<?php if ( isset( $details['show_count'] ) && $details['show_count'] ) : ?>
|
|
<?php printf( '(%d)', count( $details['fields'] ) ); ?>
|
|
<?php endif; ?>
|
|
</span>
|
|
<span class="icon"></span>
|
|
</button>
|
|
</dt>
|
|
|
|
<dd id="health-check-accordion-block-<?php echo esc_attr( $section ); ?>" role="region" aria-labelledby="health-check-accordion-heading-<?php echo esc_attr( $section ); ?>" class="health-check-accordion-panel" hidden="hidden">
|
|
<?php
|
|
if ( isset( $details['description'] ) && ! empty( $details['description'] ) ) {
|
|
printf(
|
|
'<p>%s</p>',
|
|
wp_kses(
|
|
$details['description'],
|
|
array(
|
|
'a' => array(
|
|
'href' => true,
|
|
),
|
|
'strong' => true,
|
|
'em' => true,
|
|
)
|
|
)
|
|
);
|
|
}
|
|
?>
|
|
<table class="widefat striped health-check-table">
|
|
<tbody>
|
|
<?php
|
|
foreach ( $details['fields'] as $field ) {
|
|
if ( is_array( $field['value'] ) ) {
|
|
$values = '';
|
|
foreach ( $field['value'] as $name => $value ) {
|
|
$values .= sprintf(
|
|
'<li>%s: %s</li>',
|
|
esc_html( $name ),
|
|
esc_html( $value )
|
|
);
|
|
}
|
|
} else {
|
|
$values = esc_html( $field['value'] );
|
|
}
|
|
|
|
printf(
|
|
'<tr><td>%s</td><td>%s</td></tr>',
|
|
esc_html( $field['label'] ),
|
|
$values
|
|
);
|
|
}
|
|
?>
|
|
</tbody>
|
|
</table>
|
|
</dd>
|
|
<?php } ?>
|
|
</dl>
|
|
</div>
|
|
|
|
<?php
|
|
include( ABSPATH . 'wp-admin/admin-footer.php' );
|