This function is used to add a tab to the Contextual Help menu in an admin page.
add_help_tab() is a method of the WP_Screen() class, and can not be called directly.
To use the method, fetch the $current_screen object or use get_current_screen() and then call the method from the object. Developers should keep in mind that you may need to filter $current_screen using an if or switch statement to prevent new help tabs from being added to ALL admin screens.
<?php $screen = get_current_screen(); $screen->add_help_tab( array( 'id' => $id, //unique id for the tab 'title' => $title, //unique visible title for the tab 'content' => $content, //actual help text 'callback' => $callback //optional function to callback ) ); ?>
This example shows how you would add contextual help to an admin page you've created with the add_options_page() function. Here, we assume that your admin page has a slug of 'my_admin_page' and exists under the Options tab.
<?php add_action('admin_menu', 'my_admin_add_page'); function my_admin_add_page() { $my_admin_page = add_options_page(__('My Admin Page', 'map'), __('My Admin Page', 'map'), 'manage_options', 'map', 'my_admin_page'); // Adds my_help_tab when my_admin_page loads add_action('load-'.$my_admin_page, 'my_admin_add_help_tab'); } function my_admin_add_help_tab () { $screen = get_current_screen(); // Add my_help_tab if current screen is My Admin Page $screen->add_help_tab( array( 'id' => 'my_help_tab', 'title' => __('My Help Tab'), 'content' => '<p>' . __( 'Descriptive content that will show in My Help Tab-body goes here.' ) . '</p>', ) ); } ?>
<?php /** * Plugin Name: Help Tab Test Case * Plugin URI: http://unserkaiser.com * Description: Add Help Tab test case */ class example_help { public $tabs = array( // The assoc key represents the ID // It is NOT allowed to contain spaces 'EXAMPLE' => array( 'title' => 'TEST ME!' ,'content' => 'FOO' ) ); static public function init() { $class = __CLASS__ ; new $class; } public function __construct() { add_action( "load-{$GLOBALS['pagenow']}", array( $this, 'add_tabs' ), 20 ); } public function add_tabs() { foreach ( $this->tabs as $id => $data ) { get_current_screen()->add_help_tab( array( 'id' => $id ,'title' => __( $data['title'], 'some_textdomain' ) // Use the content only if you want to add something // static on every help tab. Example: Another title inside the tab ,'content' => '<p>Some stuff that stays above every help text</p>' ,'callback' => array( $this, 'prepare' ) ) ); } } public function prepare( $screen, $tab ) { printf( '<p>%s</p>' ,__( $tab['callback'][0]->tabs[ $tab['id'] ]['content'] ,'dmb_textdomain' ) ); } } // Always add help tabs during "load-{$GLOBALS['pagenow'}". // There're some edge cases, as for example on reading options screen, your // Help Tabs get loaded before the built in tabs. This seems to be a core error. add_action( 'load-post.php', array( 'example_help', 'init' ) ); add_action( 'load-post-new.php', array( 'example_help', 'init' ) );
Above example came out of a WPSE question.
You can read this WPSE question about how to fix the wrong order bug without changing core code.
add_help_tab() is located in wp-admin/includes/class-wp-screen.php
.