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? – Rahil Wazir Nov 1 '13 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 Nov 1 '13 at 9:01
  • Are you referring to WordPress Template Hierarchy template files, or custom page templates? – Chip Bennett Nov 1 '13 at 12:53
  • Sorry, why? What does this accomplish that the Core functions and methods can not? – s_ha_dum Nov 1 '13 at 14:55

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.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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