My plugin needs to add a few screens to the frontend of the site, eg. a history overview (http://www.site.com/history?event=X).
At first, I implemented this by programmatically adding a page with a shortcode in the body, putting the logic behind the shortcode. This works well because the user can now edit the page title, URL and page template to influence how this page looks on his front end.
However, an unwanted side effect is that, at least in the default Wordpress theme (I haven't checked in others for now), my page shows up in the navigation bar on the frontend. I don't want this, both for aesthetic reasons and because the page needs a parameter to run (?event=X) and doesn't stand on its own.
So my second idea was to create a custom post type. That way I can tell it not to show up in the navigation menu (show_in_nav_menus => false), but now I lost the user's ability to apply a page template to it.
So my actual question is "Can I programmatically create a page that won't show up in the navigation bar?", but if I'm doing something stupid and there's a much better way to handle this, I'll be happy to hear about it.