Adding a custom admin page

You need just two steps:

  1. Hook into the action admin_menu, register the page with a callback function to print the content.
  2. In your callback function load the file from plugin_dir_path( __FILE__ ) . "included.html".

Demo code:

add_action( 'admin_menu', 'wpse_91693_register' );

function wpse_91693_register()
{
    add_menu_page(
        'Include Text',     // page title
        'Include Text',     // menu title
        'manage_options',   // capability
        'include-text',     // menu slug
        'wpse_91693_render' // callback function
    );
}
function wpse_91693_render()
{
    global $title;

    print '<div class="wrap">';
    print "<h1>$title</h1>";

    $file = plugin_dir_path( __FILE__ ) . "included.html";

    if ( file_exists( $file ) )
        require $file;

    print "<p class="description">Included from <code>$file</code></p>";

    print '</div>';
}

I added an example to my demo plugin T5 Admin Menu Demo to show how to do this in a sub menu and in a OOP style.

Leave a Comment