Edit dashboard's help tab

All we need is an easy explanation of the problem, so here it is.

I wish to edit the text in the dashboard’s help tab. I can add help to other pages, but I want to change the text in the grey box with links on the right-hand side of the help tab.

It is on the ‘For more information:’ section. I want to add links to my support page and not the WordPress support forum.

function my_contextual_help( $contextual_help, $screen_id, $screen ) {
    if ( 'product' == $screen->id ) {
        $contextual_help = '<h2>Products</h2>
                            <p>Products show the details of the items that we sell on the website. You can see a list of them on this page in reverse chronological order - the latest one we added is first.</p> 
                            <p>You can view/edit the details of each product by clicking on its name, or you can perform bulk actions using the dropdown menu and selecting multiple items.</p>';

    }
    return $contextual_help;
}

add_action( 'contextual_help', 'my_contextual_help', 10, 3 );

This adds the left tab ‘Products’ with help text in the middle, but it has no right section. How could I add this?

enter image description here

How to solve :

I know you bored from this bug, So we are here to help you! Take a deep breath and look at the explanation of your problem. We have many solutions to this problem, But we recommend you to use the first method because it is tested & true method that will 100% work for you.

Method 1

The documentation in the Codex seems outdated.

Use the following code (see comments):

// Priority 5 allows the removal of default tabs and insertion of other plugin's tabs 
add_filter( 'contextual_help', 'wpse_77308_products_help', 5, 3 );

function wpse_77308_products_help( $old_help, $screen_id, $screen )
{
    // Not our screen, exit earlier
    // Adjust for your correct screen_id, see plugin recommendation bellow
    if( 'edit-magazine' != $screen_id )
        return;

    // Remove default tabs
    $screen->remove_help_tabs();

    // Add one help tab
    // For new ones: duplicate this, change id's and create custom callbacks
    $screen->add_help_tab( array(
        'id'      => 'products-help',
        'title'   => 'Products',
        'content' => '', // left empty on purpose, we use the callback bellow
        'callback' => 'wpse_77308_print_help'
    ));

    // This sets the sidebar, which is common for all tabs of this screen
    get_current_screen()->set_help_sidebar(
        '<p><strong>' . __('For more information:') . '</strong></p>' .
        '<p>' . __('<a href="http://wordpress.stackexchange.com/" rel="nofollow noreferrer noopener" title="WordPress StackExchange" target="_blank">WordPress Answers</a>') . '</p>' .
        '<p>' . __('<a href="http://wordpress.org/support/" rel="nofollow noreferrer noopener" target="_blank">Support Forums</a>') . '</p>'
    );

    return $old_help;
}


function wpse_77308_print_help()
{
    echo '
        <p>Products show the details of the items that we sell on the website. 
        You can see a list of them on this page in reverse chronological order 
        - the latest one we added is first.</p> 

        <p>You can view/edit the details of each product
        by clicking on its name, or you can perform bulk actions 
        using the dropdown menu and selecting multiple items.</p>
    ';
}

Result:

cpt help tab


To get the right $screen_id, use the plugin Current Admin Info, born from two great Stack contributors (kaiser and Stephen Harris).

Displays info about the current admin screen and its globals,
contextual hooks, etc.

The info appears in new tabs in the »Contextual Help«-panel in the
upper right corner of an admin screen.

Note: Use and implement method 1 because this method fully tested our system.
Thank you 🙂

All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply