定位屏幕(上下文)帮助标签


9

使用新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.' )
    ) );
}

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

Answers:


7

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


6

正如@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.' )
    ) );
}

1

您有三种机会:

  1. 用于WP_Screen->$_help_tabs手动重新排序。
  2. 抓住现有的帮助选项卡,将其临时保存在其他位置。然后使用WP_Screen->remove_help_tab( $id ),然后手动将其重新添加。
  3. 使用admin_head过滤器填充帮助标签,或滥用admin-header.php中在其之前触发的过滤器或挂钩之一

1
WP_Screen::$_help_tabs是私人的。不幸的是,无法直接访问它。看到我的编辑,我做了您的第三个建议!
chrisguitarguy 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.