get_template_directory_uri apuntando al tema padre y no al tema hijo
El problema que tengo es que get_template_directory_uri está apuntando al tema padre como site/wp-content/themes/twentythirteen/myGallery/gallery_functions_include.php
pero quiero que apunte a mi tema hijo que debería ser site/wp-content/themes/child-twentythirteen/myGallery/gallery_functions_include.php
lo que estoy usando es include (TEMPLATEPATH . '/myGallery/gallery_functions_include.php');
get_template_directory_uri()
siempre devolverá la URI del tema padre actual.
Para obtener la URI del tema hijo, debes usar get_stylesheet_directory_uri()
.
Puedes encontrar estas funciones en la documentación, junto con una lista de otras funciones útiles para obtener diversas ubicaciones de directorios de temas.
Si prefieres usar una constante, entonces TEMPLATEPATH
es similar a llamar a get_template_directory()
(es decir, el tema padre), y STYLESHEETPATH
es similar a llamar a get_stylesheet_directory()
(es decir, el tema hijo).
Estas constantes son definidas por el núcleo de WordPress en wp-includes/default-constants.php
y básicamente tienen este aspecto:
define('TEMPLATEPATH', get_template_directory());
...
define('STYLESHEETPATH', get_stylesheet_directory());
Si no hay un tema hijo, entonces tanto las funciones de 'template' como 'stylesheet' devolverán la ubicación del tema padre.
Nota la diferencia entre estas funciones y las funciones que terminan en _uri
- estas devolverán la ruta absoluta del servidor (ej. /home/ejemplo/public_html/wp-content/tutema
), mientras que las funciones con _uri
devolverán la dirección pública (también conocida como URL) - ej. http://ejemplo.com/wp-content/themes/tutema
.

¿qué tal include (TEMPLATEPATH . '/myGallery/gallery_functions_include.php'); este también va al directorio padre

@ElroyFernandes He agregado esto a mi respuesta. STYLESHEETPATH es la constante que deberías usar en su lugar

Gracias por responder la pregunta en lugar de solo decir "lee el manual". Esto apareció primero en mis resultados de búsqueda.

Buena respuesta pero mala denominación por parte de WordPress - no es solo para hojas de estilo, es para JS, recursos, includes, etc.

Deberías mover tus plantillas personalizadas, aquellas que no son controladas por el tema activo, a una carpeta secundaria (child).
Mantén el tema separado de todos los archivos personalizados de esta manera el tema puede ser actualizado sin perder tu trabajo personalizado.
Tu tema original vive aquí ------------------------------------ \\Site\wp-content\themes\some_theme
Tu tema hijo vive aquí --------------------------- \\Site\wp-content\themes\some_theme-child
Tus estilos y plantillas personalizados, así como todos tus includes (cosas como javascript personalizado, imágenes que no se guardan en WP, fuentes personalizadas, archivos de datos json, y cualquier plugin que puedas encolar) deben moverse a la carpeta secundaria FUERA del tema principal.
\themes\some_theme \themes\some_theme-child\ (aquí van todos tus archivos de plantillas php personalizadas) \themes\some_theme-child\images \themes\some_theme-child\includes \themes\some_theme-child\languages \themes\some_theme-child\json \themes\some_theme-child\style
Para tus páginas de estilo personalizadas (no el style.css sobrescrito del tema) encólalos con wp_enqueue_style( 'some-css', get_stylesheet_directory() . '/style/some.css' , false, '0.0.1', 'all');
Usa get_stylesheet_directory_uri() con tus llamadas xhr, etc.
