get_template_directory_uri apuntando al tema principal, no al tema secundario
2 respuestas
- votos
-
- 2016-06-18
get_template_directory_uri()
siempre devolveráel URI deltemaprincipal actual.Para obtenerel URI deltema hijoen su lugar,debe utilizar
get_stylesheet_directory_uri()
.Puedeencontrarestas en la documentación ,junto con una lista de otrasfunciones útilespara obtener varias ubicaciones de directorios detemas.
Siprefiere usar una constante,entonces
TEMPLATEPATH
es similar a llamar aget_template_directory()
(es decir,eltemaprincipal) ySTYLESHEETPATH
es similar a llamar aget_stylesheet_directory()
(es decir,eltema hijo).Estas constantes lasestableceelnúcleo de WordPressen
wp-includes/default-constants.php
ybásicamente se ven así:define('TEMPLATEPATH', get_template_directory()); ... define('STYLESHEETPATH', get_stylesheet_directory());
Sino hay untema secundario,lasfunciones 'plantilla' y 'hoja deestilo' devolverán la ubicación deltemaprincipal.
Note la diferenciaentreestasfunciones y lasfunciones queterminanen
_uri
-estas devolverán la ruta absoluta del servidor (porejemplo,/home/example/public_html/wp-content/yourtheme
),mientras que lasfunciones_uri
devolverán la direcciónpública (también conocida como URL),porejemplo.http://example.com/wp-content/themes/yourtheme
.get_template_directory_uri()
will always return the URI of the current parent theme.To get the child theme URI instead, you need to use
get_stylesheet_directory_uri()
.You can find these in the documentation, along with a list of other useful functions for getting various theme directory locations.
If you prefer to use a constant, then
TEMPLATEPATH
is akin to callingget_template_directory()
(i.e. the parent theme), andSTYLESHEETPATH
is akin to callingget_stylesheet_directory()
(i.e. the child theme).These constants are set by WordPress core in
wp-includes/default-constants.php
and basically look like this:define('TEMPLATEPATH', get_template_directory()); ... define('STYLESHEETPATH', get_stylesheet_directory());
If there is no child theme, then both the 'template' and 'stylesheet' functions will return the parent theme location.
Note the difference between these functions and the functions ending in
_uri
- these will return the absolute server path (eg./home/example/public_html/wp-content/yourtheme
), whereas the_uri
functions will return the public address (aka URL) - eg.http://example.com/wp-content/themes/yourtheme
.-
¿quépasa coninclude (TEMPLATEPATH. '/myGallery/gallery_functions_include.php');estetambién va al directorioprincipalwhat about include (TEMPLATEPATH . '/myGallery/gallery_functions_include.php'); this one also goes to the parent directory
- 0
- 2016-06-18
- Elroy Fernandes
-
@ElroyFernandes He agregadoesto ami respuesta.STYLESHEETPATHes la constante que querríaen su lugar@ElroyFernandes I've added this to my answer. STYLESHEETPATH is the constant you'd want instead
- 0
- 2016-06-18
- Tim Malone
-
Graciaspor responder lapreguntaen lugar de simplemente decir RTM.Esto aparecióprimeroen mis resultados debúsqueda.Thanks for answering the question instead of just saying RTM. This popped up first in my search results.
- 2
- 2017-05-04
- rinogo
-
Buena respuestaperomala denominaciónporparte de WordPress:noes solopara hojas deestilo,espara JS,activos,incluye,etc.Good answer but bad naming on WordPress's part - it's not just for stylesheets, it's for JS, assets, includes etc.
- 2
- 2018-09-21
- Paul Feakins
-
@PaulFeakins Noempiece anombrarinconsistenciasen WordPress - ¡esees un camino largo y ventoso que lleva a quién sabe dónde!;)@PaulFeakins Don’t get started on naming inconsistencies in WordPress - that’s a long and windy road that leads who-knows-where! ;)
- 1
- 2018-09-21
- Tim Malone
-
- 2018-06-06
Debemover susplantillaspersonalizadas,aquellas quenoestán controladasporeltema activo,a una carpeta secundaria.
Mantengaeltema separado detodos los archivospersonalizados deestamaneraeltema sepuede actualizar sinperder sutrabajopersonalizado.
Tutema listopara usar vive aquí ------------------------------------ \\ Sitio \ wp-content \themes \ some_theme
Sutemainfantil vive aquí --------------------------- \\ Sitio \ wp-content \themes \ some_theme-child
Susestilos yplantillaspersonalizados ytodas susinclusiones (cosas comojavascriptpersonalizado,imágenes queno seguardanen WP,fuentespersonalizadas,archivos de datosjson y cualquier complemento quepuedaponeren cola) debenmoverse a la carpeta secundaria FUERA deltema .
\themes \ some_theme \themes \ some_theme-child \ (todos sus archivos deplantillaphppersonalizados aquí) \themes \ some_theme-child \images \themes \ some_theme-child \incluye \themes \ some_theme-child \ languages \themes \ some_theme-child \json \themes \ some_theme-child \ style
Para suspáginas deestilopersonalizado (noel style.css anulado deltema ),pongaen cola wp_enqueue_style ('some-css',get_stylesheet_directory () . '/style/some.css ',falso,' 0.0.1 ','todo ');
Utilice get_stylesheet_directory_uri () con sus llamadas xhr,etc.
You should move your custom templates, those that are not controlled by the active theme, to a child folder.
Keep the theme separate from all customized files this way the theme can be updated without losing your custom work.
Your out-of-the-box theme lives here ------------------------------------ \\Site\wp-content\themes\some_theme
Your child theme lives here --------------------------- \\Site\wp-content\themes\some_theme-child
Your custom styles and templates and all your includes (things like custom javascript, images that are not saved to WP, custom fonts, json data files, and any plugins that you might enqueue) should be moved to child folder OUTSIDE of theme.
\themes\some_theme \themes\some_theme-child\ (all your custom php template files here) \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
For your custom style pages (not the theme's overridden style.css) enqueue with wp_enqueue_style( 'some-css', get_stylesheet_directory() . '/style/some.css' , false, '0.0.1', 'all');
Use get_stylesheet_directory_uri() with your xhr calls, etc.
Elproblema quetengoes queget_template_directory_uri apunta altemaprincipal como
site/wp-content/themes/twentythirteen/myGallery/gallery_functions_include.php
pero quiero que apunte ami tema hijo,que debería ser
site/wp-content/themes/child-twentythirteen/myGallery/gallery_functions_include.php
lo queestoy usandoes
include (TEMPLATEPATH . '/myGallery/gallery_functions_include.php');