Determine which template-{slug}.php is being loaded

The question:

I am trying to make a personal plugin that does specific things based on what is loaded. In this example, in my action method I want to perform one function if the currently loading page is using the template-blog.php template, if it’s a single blog post (loading single.php do a second function, anything else do a 3rd function

I am not quite sure what method I need to use, and so far Google is not pulling up the right methods. I have been trying get_current_template(), get_template() get_page_template(), but none of them pull the stuff I am looking for above.

The Solutions:

Below are the methods you can try. The first solution is probably the best. Try others if the first one doesn’t work. Senior developers aren’t just copying/pasting – they read the methods carefully & apply them wisely to each case.

Method 1

Using body_class() on the body tag would probably be the easiest way to tell which template is in use.

<body <?php body_class(); ?>>

Depending on which page you are on, it will output similar to this

<body class="page page-id-10 page-template-default logged-in">

Where page-template-default is the template in use. It’s also useful for blog posts and custom post types.

All methods was sourced from or, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Comment