You need just two steps:
- Hook into the action
admin_menu
, register the page with a callback function to print the content. - 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.