网站健康
从 WordPress 5.8 开始,允许开发人员扩展站点健康屏幕。此 API 允许开发人员将自己的选项卡添加到站点运行状况界面。
注册自定义选项卡导航
开发人员需要从创建导航元素开始,以便用户可以访问新选项卡。这是使用 site_health_navigation_tabs
过滤器完成的,过滤器是一组关联的 Tab 键及其标签。
<?php
function wporg_example_site_health_navigation_tabs( $tabs ) {
// translators: Tab heading for Site Health navigation.
$tabs['example-site-health-tab'] = esc_html_x( 'My New Tab', 'Site Health', 'text-domain' );
return $tabs;
}
add_filter( 'site_health_navigation_tabs', 'wporg_example_site_health_navigation_tabs' );
上面的示例会将带有 example-site-health-tab
标签的 标识符添加My New Tab
到位于站点运行状况屏幕中的标题导航中。
也可以使用此过滤器重新排序首先显示的选项卡,甚至删除选项卡。默认情况下,核心有两个选项卡, Status
和 Info
屏幕。屏幕 Status
是默认的,因此没有 slug。
为了不让导航区域负担过重,如果添加的项超过 4 个,则只会直接显示前三个,其余项被包裹在子导航中。这是基于 Health Check 插件中的使用测试,其中 4 个项目已显示足以涵盖大多数用例,但不会多到令人困惑。
显示自定义选项卡的内容
当用户访问站点运行状况选项卡(默认屏幕除外)时, site_health_tab_content
将触发该操作。此操作包括单个参数,即 slug,如上一个过滤器中的选项卡导航所定义,以帮助开发人员识别正在请求的页面。
该操作在标头本身加载后触发,但不包含任何包装器。作为开发人员,这为您提供了整个屏幕宽度(不包括管理菜单)。
<?php
function wporg_example_site_health_tab_content( $tab ) {
// Do nothing if this is not our tab.
if ( 'example-site-health-tab' !== $tab ) {
return;
}
// Include the interface, kept in a separate file just to differentiate code from views.
include trailingslashit( plugin_dir_path( __FILE__ ) ) . 'views/site-health-tab.php';
}
add_action( 'site_health_tab_content', 'wporg_example_site_health_tab_content' );
上面的示例加载了一个文件,其中包含插件中的选项卡内容,但前提是该选项卡与上一个示例中定义的选项卡键(或 slug,如果你愿意的话)相匹配。
可以通过这种方式在任何选项卡上提供输出,或者在另一个不是您自己的选项卡上提供输出,例如,如果它们相互交互。
另一个例子可能是扩展默认选项 Info
卡,它有 slug debug
,并添加一个按钮来复制一些特定于您的插件或主题的信息:
<?php
function wporg_add_button_to_site_health_info_tab( $tab ) {
// Do nothing if this is not the "debug" tab.
if ( 'debug' !== $tab ) {
return;
}
?>
<button class="copy-my-plugin-info">
<?php esc_html_e( 'Click to copy plugin info', 'text-domain' ); ?>
</button>
<?php
}
add_action( 'site_health_tab_content', 'wporg_add_button_to_site_health_info_tab' );