Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

Class Reference/WP Screen/add help tab


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.


$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
) );


(array) (required) Contains values to be displayed by the created help tab and a callback argument
Default: None


(string) (required) Title for the tab.
Default: None
(string) (required) Tab ID. Must be HTML-safe and should be unique for this menu. It is **NOT** allowed to contain any empty spaces!
Default: None
(string) (optional) Help tab content in plain text or HTML.
Default: None
(callback) (optional) The function to be called to output the content for this page.
Default: None


Default Usage

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.

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>',
    ) );

Advanced Usage (from within a class)

 * 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 )
	    			 $tab['callback'][0]->tabs[ $tab['id'] ]['content']
// 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.

Change Log

Source File

add_help_tab() is located in wp-admin/includes/class-wp-screen.php.