I created a custom folder ("/templates") and I put all of my template files in the folder. instead of root ("/wp-content/themes/my-theme/"). It works fine.

Do I have to add some function for indicating "/templates/" folder as my templates folder? Usually you put them on root, right?

It works fine now but I just wonder if there is anything I have to. I can't find any information on wordpress codex. I just installed WPML and All of templates pages are 404 now. I wonder if it(custom template folder location) causes this 404 pages. cuz woo-commerce pages are showing fine. wc is not in my template folder. it generated by plugin.

-------- Additional

I created a template www/wp-content/themes/my-theme/tpl-home.php

I named this file as a template page.

Template Name: Home
get_header(); ?>

And I moved templates files on www/wp-content/themes/my-theme/templates/tpl-home.php

It still works well. I have seen a lot of themes do like this.

Do I need to setup some function to indicated the folder?

  • what you mean by root? root of what? themes=>your-theme your currently active theme root? Commented Nov 1, 2013 at 8:52
  • Thanks guys. I added more information. please let me know if you need more. Root means. theme root.. so /wp-content/themes/my-theme/
    – pulla
    Commented Nov 1, 2013 at 9:01
  • Are you referring to WordPress Template Hierarchy template files, or custom page templates? Commented Nov 1, 2013 at 12:53
  • Sorry, why? What does this accomplish that the Core functions and methods can not?
    – s_ha_dum
    Commented Nov 1, 2013 at 14:55

2 Answers 2


As of WordPress 3.4 you can put your page templates in whatever direct subdirectory you need, it doesn't sound like you can put them into sub-sub directories but I haven't tested this.

I suggest storing templates into /page-templates/ folder as WordPress seems to recognize it. From WordPress Page Templates Entry:

WordPress recognizes the subfolder page-templates. Therefore, it’s a good idea to store your global page templates in this folder to help keep them organized.


You can place your templates within your active theme where ever you want but you have to include your files to functions.php.

You can make a folder called page-templates within your current theme.


and add your custom templates there.

Include files in functions.php

if ( is_page_template( 'page-templates/my-template.php' ) ) {
    include_once 'page-templates/my-template.php';

it should work.

  • 1
    doesn't work at all for me Commented Dec 20, 2018 at 23:20
  • Great. THis is working fully for me. Commented Oct 6, 2020 at 17:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.