I don’t quite know what you mean by “include a theme” and you are talking about a potentially large and complicated project but I think you should be able to control the display of your plugin content with the template_redirect
hook.
function template_redir_wpse_99209($content) {
// code or file include, for example
// exit;
}
add_action('template_redirect','template_redir_wpse_99209',1);
You can echo
your page content and then exit
, or include a file from anywhere, including your plugin. You don’t have to redirect to a theme template.
It is a bit of a hack but I don’t know of another way to “inject” a page. This is “theme” territory. The theme usually controls content display.
There is also the template_include
hook but you’d be looking at the same kind of exit
hack.
I don’t know how friendly this will be, since you are completely hijacking what is usually theme territory. I’d at least consider allowing the theme to override your defaults.