Carpeta de plantillas personalizadas
He creado una carpeta personalizada ("/templates") y he puesto todos mis archivos de plantilla en esa carpeta, en lugar de la raíz ("/wp-content/themes/my-theme/"). Funciona bien.
¿Debo agregar alguna función para indicar la carpeta "/templates/" como mi carpeta de plantillas? Normalmente se colocan en la raíz, ¿verdad?
Funciona bien ahora, pero me pregunto si hay algo que deba hacer. No puedo encontrar información en el codex de WordPress. Acabo de instalar WPML y todas las páginas de plantillas muestran error 404 ahora. Me pregunto si esto (la ubicación de la carpeta de plantillas personalizada) causa estas páginas 404, ya que las páginas de WooCommerce se muestran bien. WC no está en mi carpeta de plantillas, fue generado por el plugin.
-------- Adicional
Creé una plantilla www/wp-content/themes/my-theme/tpl-home.php
Nombré este archivo como una página de plantilla.
<?php
/*
Template Name: Home
*/
get_header(); ?>
Y moví los archivos de plantillas a www/wp-content/themes/my-theme/templates/tpl-home.php
Todavía funciona bien. He visto muchos temas que lo hacen así.
¿Necesito configurar alguna función para indicar la carpeta?

A partir de WordPress 3.4 puedes colocar tus plantillas de página en cualquier subdirectorio directo que necesites, no parece que puedas colocarlas en sub-subdirectorios pero no he probado esto.
Sugiero almacenar las plantillas en la carpeta /page-templates/
ya que WordPress parece reconocerla. Según la Entrada de Plantillas de Página de WordPress:
WordPress reconoce el subdirectorio
page-templates
. Por lo tanto, es una buena idea almacenar tus plantillas de página globales en esta carpeta para ayudar a mantenerlas organizadas.

Puedes colocar tus plantillas dentro de tu tema activo donde quieras, pero debes incluir tus archivos en functions.php.
Puedes crear una carpeta llamada page-templates
dentro de tu tema actual.
/wp-content/themes/mi-tema/page-templates
y agregar tus plantillas personalizadas allí.
Incluye los archivos en functions.php
if ( is_page_template( 'page-templates/mi-plantilla.php' ) ) {
include_once 'page-templates/mi-plantilla.php';
}
Debería funcionar.
