October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run ScanOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk4 min

How to Add a Help Resource Section in the WordPress Admin

Add contextual help to an existing plugin settings screen with the Settings API, or register a dedicated resource page beneath Settings with add_options_page().
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

To add help content inside an existing plugin settings screen, register a Settings API section on that screen. To give resources their own destination in the dashboard, add a submenu page—usually under Settings or Tools for a plugin with one page. The choice depends on whether the help belongs beside configuration controls or merits its own place in the admin menu.

Choose where the help should appear

Approach Best for Where it appears
Settings API section Brief, contextual guidance related to settings controls Within an existing settings screen
Dedicated admin page A set of resources users should be able to find as a destination, such as setup instructions, documentation, and support links As a submenu item, commonly under Settings or Tools

WordPress recommends using an existing top-level menu, such as Settings or Tools, when a plugin has only one options page. A static help page does not need a settings form; use the Settings API form flow when users actually need to edit and save options.

Add a dedicated help page under Settings

add_options_page() creates a submenu beneath Settings. Call it from a function hooked to admin_menu. Its arguments set the page title, menu label, required capability, unique slug, and callback that renders the page. See the WordPress add_options_page() reference.

add_action( 'admin_menu', 'my_plugin_add_help_page' );

function my_plugin_add_help_page() {
    add_options_page(
        __( 'Plugin Help', 'my-plugin' ),
        __( 'Plugin Help', 'my-plugin' ),
        'manage_options',
        'my-plugin-help',
        'my_plugin_render_help_page'
    );
}

function my_plugin_render_help_page() {
    if ( ! current_user_can( 'manage_options' ) ) {
        return;
    }
    ?>
    <div class="wrap">
        <h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
        <p><?php esc_html_e( 'Find setup instructions and support resources here.', 'my-plugin' ); ?></p>
    </div>
    <?php
}

Replace the example text with useful, plugin-specific material: for example, a setup guide, feature documentation, or instructions for contacting support. Escape text as it is output, as in the example. The wrap container follows the standard admin page layout.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Set access deliberately

manage_options is a common choice for an administrator-only settings page, not a universal requirement. Pick a capability that matches the intended audience, and use the same capability in both the menu registration and the callback check. WordPress says the output callback must check the required capability as well; hiding a menu item alone is not the callback’s permission check.

Use a unique slug

Give the page a distinctive slug such as my-plugin-help. The function reference warns that spaces in a slug are stripped from generated URLs and may cause a permissions error.

Add help inside an existing settings screen

Use add_settings_section() when the help belongs on a settings page that already exists. Register the section on admin_init, and pass the identifier of the settings page being rendered as the final argument. The Settings API supports sections on both new and existing settings pages; a section containing only explanatory copy or links does not inherently need a setting field.

add_action( 'admin_init', 'my_plugin_register_help_section' );

function my_plugin_register_help_section() {
    add_settings_section(
        'my_plugin_help',
        __( 'Help and resources', 'my-plugin' ),
        'my_plugin_render_help_section',
        'my-plugin-settings'
    );
}

function my_plugin_render_help_section() {
    echo '<p>' . esc_html__( 'Read the setup guide or contact support.', 'my-plugin' ) . '</p>';
}

In this example, my-plugin-settings must match the page identifier used by the plugin’s settings screen. If the page identifier does not match, the section will not be attached to the screen you intend.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

For a full settings form, register the relevant settings and fields through the Settings API as well. WordPress documents the registration hooks and form flow in its Settings API usage guide.

Use the right admin hook and capability

  • For a site-level dashboard page, register the menu on admin_menu.
  • For a page in Network Admin, use network_admin_menu; WordPress distinguishes it from the site-level hook in its administration menus guide.
  • Check the intended capability inside the render callback, even when WordPress uses that capability to decide whether to show the menu item.
  • If the help screen submits options through options.php, follow the Settings API’s access and submission model. WordPress documents that users generally need manage_options to submit there; Multisite submissions require a Super Admin.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Check the result

  1. Activate the plugin in a test site and sign in with a user account that has the capability you selected.
  2. For a dedicated page, open Settings and select the plugin’s help item. Confirm the page title and resources render inside the admin layout.
  3. For an inline section, open the existing settings screen and confirm the section appears in the intended location.
  4. Test with a user lacking the chosen capability. The page should not be available to that user, and the callback should not render its contents.

The examples show the API pattern; they do not establish compatibility for every WordPress release or plugin architecture. Check the versions your plugin supports before shipping.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.