如何将帮助选项卡添加到所有管理页面-包括插件页面

时间:2013-11-30 作者:Q Studio

我有一个工作代码,可以在管理中的所有屏幕上添加帮助选项卡,这些屏幕已经有帮助选项或帮助屏幕-但是,没有上下文帮助的屏幕-例如我编写的插件,也无法识别add\\u操作调用-如何确保help\\u选项卡出现在管理中的每个屏幕上?

一些简单的代码-但它或多或少与Codex.

我在类构造中添加操作\\uu

// add help tab to admin UI ##
add_action( "load-{$GLOBALS[\'pagenow\']}", array( $this, \'add_help_tab\' ), 20 );
这将调用类“add\\u help\\u tab”中的方法:

public function add_help_tab() {
        foreach ( $this->help_tabs as $id => $data ) {
            get_current_screen()->add_help_tab( 
                array(
                    \'id\'       => $id
                   ,\'title\'    => __( $data[\'title\'], \'q_support\' )
                   // Use the content only if you want to add something
                   // static on every help tab. Example: Another title inside the tab
                   ,\'callback\' => array( $this, \'callback_function\' )
                ) 
            );
        }
}
它反过来调用回调方法“callback\\u function”——除了在没有预先存在的帮助选项卡的屏幕上之外,所有这些都按预期工作——有没有办法确保每个页面都包含帮助选项卡功能?

1 个回复
最合适的回答,由SO网友:tfrommen 整理而成

这就是如何将帮助选项卡添加到所有管理页面的方法;无论是否已经存在:

add_action(\'in_admin_header\', \'wpse_124979_add_help_tabs\');

function wpse_124979_add_help_tabs() {
    if ($screen = get_current_screen()) {
        $help_tabs = $screen->get_help_tabs();
        $screen->remove_help_tabs();

        $screen->add_help_tab(array(
            \'id\' => \'my_help_tab\',
            \'title\' => \'My Help\',
            \'content\' => \'<p>My help content...</p>\',
        ));

        if (count($help_tabs))
            foreach ($help_tabs as $help_tab)
                $screen->add_help_tab($help_tab);
    }
} // function wpse_124979_add_help_tabs
在OOP设置中,应该如下所示:

// This could go in your constructor, for instance
add_action(\'in_admin_header\', array($this, \'add_help_tabs\'));

function add_help_tabs() {
    if ($screen = get_current_screen()) {
        $help_tabs = $screen->get_help_tabs();
        $screen->remove_help_tabs();

        foreach ($this->help_tabs as $id => $data)
            $screen->add_help_tab(array(
                \'id\' => $id,
                \'title\' => __($data[\'title\'], \'q_support\'),
                \'callback\' => array($this, \'callback_function\'),
            ));

        if (count($help_tabs))
            foreach ($help_tabs as $help_tab)
                $screen->add_help_tab($help_tab);
    }
} // function add_help_tabs
in_admin_header 几乎是屏幕元(以及帮助)呈现之前的最后一个动作挂钩。

So, what do you get from this?

将帮助选项卡添加到每个管理页面(核心、插件、其他)您的选项卡将位于原始帮助选项卡(如果有)之前/之上

结束

相关推荐

Cron在每次访问wp-admin时触发我的函数

这是我正在开发的一个MU插件,我希望它每小时运行一次。不幸的是,每次我访问任何网站的wp管理页面时,它都会运行。我将调试栏插件与Cron插件一起使用,它始终表示下一个事件已经过去。有什么想法吗?add_action(\'admin_menu\', \'dhg_cron_menu\'); function dhg_cron_menu() { add_options_page(\'NEW WPMS Stats\', \'NEW WPMS Stats\', \'manage-op