The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →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.
#1 Best Overall
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.
Rank #3
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 needmanage_optionsto submit there; Multisite submissions require a Super Admin.
Check the result
- Activate the plugin in a test site and sign in with a user account that has the capability you selected.
- For a dedicated page, open Settings and select the plugin’s help item. Confirm the page title and resources render inside the admin layout.
- For an inline section, open the existing settings screen and confirm the section appears in the intended location.
- 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.
Quick Recap
Best Value
Rank #4
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.




