How to create a wordpress template without using any page

I’m not sure WordPress was build for this, but this is what I’m trying to achieve:

  • I want to make a specific URL inside wordpress accessible, for example www.example.com/some-template .
  • This specific URL should be editable from a php file, part of an existing wordpress theme I’m working on, something like some-template.php)
  • This is the tricky part: I don’t want wordpress users to be able to see or use this template from the custom templates dropdown menu when editing a page. I don’t want a specific page to exist in order for this to work. This template should work without any page (I’m not interested in creating a page and hiding it, or hiding the template).

The reason I’m trying to do this, is that I want to have a specific template that pieces together a few pages and menus from wordpress and creates some kind of a ‘custom view’ which is pulled every few hours to another site. It’s all part of a bigger picture (the details are not that important).

While searching, I only found out that it’s possible to create custom templates for at least one page, but then that page must exist in wordpress for the template to work.

Does anyone have an idea of how to achieve this?

2 Answers
2

You may use template_redirect action:

add_action( 'template_redirect', 'wpse131387_template_redirect' );
function wpse131387_template_redirect( ){
    if ($_SERVER['REQUEST_URI'] == '/some-template') {
        global $wp_query;
        $wp_query->is_404 = false;
        status_header(200);
        include(dirname(__FILE__) . '/some-template.php');
        exit();
    }
}

Leave a Comment