WordPress 5.2 網站健康檢查

WordPress 5.2將在管理界面中包含兩個新頁面,以幫助最終用戶通過常見配置問題和其他具有健康在線狀態的元素自助服務他們的網站。它還爲開發人員提供了添加調試信息的標準化位置。

新頁面可以在“ 工具”菜單下找到,名爲“網站健康,併爲用戶提供全新的管理界面。由於我們希望用戶能夠定期確保他們的網站符合標準,因此我們將重點放在創建您希望將來返回的界面上。

網站健康狀況

WordPress站點運行狀況頁面的屏幕截圖

第一頁在用戶的網站上運行一系列測試,並將分類爲關鍵推薦良好的響應。這些結果也會影響您擁有的完成百分比(其中關鍵的權重比建議的更重)。

每個測試結果都可以擴展,以解釋您作爲用戶應該注意什麼,以及哪些問題(如果有的話)需要解決。

大多數捆綁測試也會有可操作的項目,並直接提供到儀表板相應區域的鏈接,您可以在其中改進相關設置。

過濾測試

測試通過site_status_tests是可過濾的,意味着插件或主題可以添加自己的測試,或刪除現有測試。我們還將它們分爲兩種不同類型的測試:直接測試和異步測試。這樣做是因爲某些測試可能需要更多時間來運行,因此爲了避免管理頁面中的潛在超時,添加到異步部分的任何測試將在加載頁面後通過AJAX調用連續運行。

服務器管理員特別感興趣的是協同過濾器site_status_tests_php_modules,它基於WordPress主機團隊推薦和必需的PHP擴展列表。

刪除測試

過濾器使用的一個示例是進行自動更新的託管提供商。他們可能希望刪除啓用或禁用後臺更新的測試,如下所示:

function myhost_remove_update_check( $tests ) {
	unset( $tests['background_updates'] );
	return $tests;
}
add_filter( 'site_status_tests', 'myhost_remove_update_check' );

添加測試

這是一個緩存插件如何檢查以確保其緩存設置已啓用的示例。

<?php
function myplugin_add_caching_test( $tests ) {
	$tests['direct'] = array(
		'caching_plugin' => array(
			'label' => __( 'My Caching Test' ),
			'test'  => 'myplugin_caching_test',
		),
	);
	return $tests;
}
add_filter( 'site_status_tests', 'myplugin_add_caching_test' );

function myplugin_caching_test() {
	$result = array(
		'label'       => __( 'Caching is enabled' ),
		'status'      => 'good',
		'badge'       => array(
			'label' => __( 'Performance' ),
			'color' => 'orange',
		),
		'description' => sprintf(
			'<p>%s</p>',
			__( 'Caching can help load your site more quickly for visitors.' )
		),
		'actions'     => '',
		'test'        => 'caching_plugin',
	);

	if ( ! myplugin_caching_is_enabled() ) {
		$result['status'] = 'recommended';
		$result['label'] = __( 'Caching is not enabled' );
		$result['description'] = sprintf(
			'<p>%s</p>',
			__( 'Caching is not currently enabled on your site. Caching can help load your site more quickly for visitors.' )
		);
		$result['actions'] .= sprintf(
			'<p><a href="%s">%s</a></p>',
			esc_url( admin_url( 'admin.php?page=cachingplugin&action=enable-caching' ) ),
			__( 'Enable Caching' )
		);
	}

	return $result;
}

myplugin_add_caching_test()掛在site_status_tests過濾器上。它增加了一個新的測試稱爲caching_plugin直接測試列表。test此數組中的值是在“站點運行狀況”頁面上運行測試時將調用的函數。

注意:如果將測試添加到異步測試列表,則還需要使用wp_ajax_{$action}掛鉤將測試函數註冊爲AJAX操作。

測試函數應該返回一個數組,其中包含有關測試結果的數據。這個數組包括:

  • label:該部分的標題應該說什麼。
  • status:部分結果應該顯示在可能的值有goodrecommendedcritical
  • badge:數組包含:
    • label:徽章應該說什麼。
    • color:將具有此值的CSS類應用於徽章。核心樣式支持bluegreenredorangepurplegray
  • description:有關測試結果的其他詳細信息。
  • actions:允許最終用戶對結果執行操作的鏈接或按鈕。
  • test:測試的名稱。

在上面的示例中,測試函數myplugin_caching_test()爲結果設置初始基線值,然後在調用其內部函數myplugin_caching_is_enabled()返回時根據需要覆蓋部分false

網站健康信息

WordPress站點健康信息頁面的屏幕截圖

“ 信息”選項卡用於調試目的。它提供了大量關於網站和服務器設置的信息,以便在各個位置尋找支持時共享,以及快速複製任何非私人信息的按鈕,以便您可以輕鬆地將其粘貼給其他人。

該頁面分爲幾個部分。插件和主題可以使用debug_information過濾器將自己的條目引入此頁面,方法是向現有部分添加條目,或者創建自己的部分。

如上所述,複製的信息僅包括非私人信息,這當然可以是主觀的,因此也包括在過濾器中。通過將相應的$private值設置爲true,可以將單個條目設置爲private。

例如,數據庫前綴顯示在Database部分下,並標記爲private,所以當我去複製所有信息時,它不存在:

“站點運行狀況信息”頁面的數據庫部分示例

添加到整個數據庫部分的剪貼板的內容如下所示:

### Database ###

Extension: mysqli
Server version: 5.5.5-10.1.38-MariaDB-1~jessie
Client version: mysqlnd 5.0.12-dev - 20150407 - $Id: 7cc7cc96e675f6d72e5cf0f267f48e167c2abb23 $

安全插件可能會認爲任何數據庫信息始終被視爲私有,並將按以下方式過濾:

function secplugin_remove_database_info( $debug_info ) {
	$debug_info['wp-database']['private'] = true;
	return $debug_info;
}
add_filter( 'debug_information', 'secplugin_remove_database_info' );

添加新部分也可能是有意義的。下面的示例添加了您自己的插件及其許可證密鑰,但將其標記爲私有,列表:

function myplugin_add_debug_info( $debug_info ) {
	$debug_info['my-plugin-slug'] = array(
		'label'    => __( 'My Plugin', 'my-plugin-slug' ),
		'fields'   => array(
			'license' => array(
				'label'    => __( 'License', 'my-plugin-slug' ),
				'value'   => get_option( 'my-plugin-license', __( 'No license found', 'my-plugin-slug' ) ),
				'private' => true,
			),
		),
	);

	return $debug_info;
}
add_filter( 'debug_information', 'myplugin_add_debug_info' );

每個新添加的部分都應該使用您的插件或主題塊來避免名稱衝突。所有核心條目的前綴都是wp-。

所有調試信息是在轉義方式加入,該信息頁面將貫穿所有的數據wp_kses,並且只允許astrongemspan標籤(用以強調或鏈接到文檔)。
調試信息應該是純文本,並在頁面上顯示之前進行轉義。顯示的數據將被運行esc_html(),並且可以複製的數據將被運行esc_attr()

你也許想看看WordPress 5.2中另一個全新的項目WordPress 5.2中的致命錯誤恢復模式的文章,也可查看WordPress 5.2候選版本中有關WordPress 5.2主要新功能的描述。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章