问题描述

使用新的 WP_Screen 类可以很容易地将帮助文本添加到屏幕。

<?php
add_action( "load-{$somepage}", 'wpse_load_reading' );
function wpse_load_reading()
{
    get_current_screen()->add_help_tab( array(
        'id'        => 'my-help-tab',
        'title'     => __( 'My Title' ),
        'content'   => __( 'Help Content' )
    ) );
}

这对于自定义页面来说非常棒。但是当在现有屏幕上添加一个帮助选项卡时,我们来说 options-reading.php 有些奇怪。

load-options-reading.php 钩子在内置 WP 页面添加自己的帮助选项卡之前触发。换句话说,在现有的屏幕上添加一个帮助标签会将所有内置的帮助选项卡颠倒到列表的底部。

这里有一些代码,如果你想尝试一下:

<?php
add_action( "load-options-reading.php", 'wpse_load_reading2' );
function wpse_load_reading2()
{
    get_current_screen()->add_help_tab( array(
        'id'        => 'my-help-tab',
        'title'     => __( 'My Title' ),
        'content'   => __( 'Why is this tab above the built in tab?' )
    ) );
}

有没有办法在屏幕上重新排列帮助标签?

编辑:

找到了一个办法。在包括 admin-header.php 文件之前添加默认帮助选项卡。

所以你可以挂接到 load-{$built_in_page},并从那里钩一个功能 admin_head,它负责设置你的帮助选项卡。

<?php
add_action( 'load-options-reading.php', 'wpse45210_load' );
function wpse45210_load()
{
    add_action( 'admin_head', 'wpse45210_add_help' );
}

function wpse45210_add_help()
{
    get_current_screen()->add_help_tab( array(
        'id'        => 'my-help-tab',
        'title'     => __( 'My Title' ),
        'content'   => __( 'This tab is below the built in tab.' )
    ) );
}

似乎像一个黑客。有没有更好的办法?

最佳解决方案

使用 admin_head-$hook_suffix 操作,这是相同的方法只是删除 exta 动作和回调。

次佳解决方案

如 @Mamaduka 所建议的,您可以挂接到 admin_head-{$page_hook}并在其中添加上下文帮助。 admin_head 在添加默认上下文帮助选项卡后触发。

<?php
add_action( 'admin_head-options-reading.php', 'wpse45210_add_help' );
function wpse45210_add_help()
{
    get_current_screen()->add_help_tab( array(
        'id'        => 'my-help-tab',
        'title'     => __( 'My Title' ),
        'content'   => __( 'This tab is below the built in tab.' )
    ) );
}

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。