get_template_directory_uri pointant sur le thème parent et non sur le thème enfant
2 réponses
- votes
-
- 2016-06-18
get_template_directory_uri()
retourneratoujours l'URI duthèmeparent actuel.Pour obtenir l'URI duthèmeenfant à laplace,vous devez utiliser
get_stylesheet_directory_uri()
.Vouspouveztrouver ces dans la documentation ,ainsi qu'une liste d'autresfonctions utilespour obtenir diversemplacements de répertoires dethèmes.
Si vouspréférez utiliser une constante,alors
TEMPLATEPATH
revient à appelerget_template_directory()
(c'est-à-dire lethèmeparent)etSTYLESHEETPATH
revient à appelerget_stylesheet_directory()
(c'est-à-dire lethèmeenfant).Ces constantes sont définiespar lenoyau de WordPress dans
wp-includes/default-constants.php
et ressemblentessentiellement à ceci:define('TEMPLATEPATH', get_template_directory()); ... define('STYLESHEETPATH', get_stylesheet_directory());
S'iln'y apas dethèmeenfant,alors lesfonctions 'template' et 'styleheet' renverront l'emplacement duthèmeparent.
Notez la différenceentre cesfonctionset lesfonctions seterminantpar
_uri
-elles renverront le chemin absolu du serveur (parexemple./home/example/public_html/wp-content/yourtheme
),alors que lesfonctions_uri
renverront l'adressepublique (aka URL) -parexemple.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'enest-il deinclude (TEMPLATEPATH. '/myGallery/gallery_functions_include.php');celui-ci va également dans le répertoireparentwhat about include (TEMPLATEPATH . '/myGallery/gallery_functions_include.php'); this one also goes to the parent directory
- 0
- 2016-06-18
- Elroy Fernandes
-
@ElroyFernandes J'ai ajouté ceci àma réponse.STYLESHEETPATHest la constante que vous voudriez à laplace@ElroyFernandes I've added this to my answer. STYLESHEETPATH is the constant you'd want instead
- 0
- 2016-06-18
- Tim Malone
-
Merci d'avoir répondu à la question au lieu de simplement dire RTM.Celaest apparuen premier dansmes résultats de recherche.Thanks for answering the question instead of just saying RTM. This popped up first in my search results.
- 2
- 2017-05-04
- rinogo
-
Bonne réponsemaismauvaise dénomination de lapart de WordPress - cen'estpas seulementpour lesfeuilles de style,c'estpour JS,les actifs,lesinclus,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 Ne commencezpas ànommer lesincohérences dans WordPress - c'est une route longueet venteuse quimène onne sait où!;)@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
Vous devez déplacer vosmodèlespersonnalisés,ceux quine sontpas contrôléspar lethème actif,vers un dossierenfant.
Gardez lethème séparé detous lesfichierspersonnalisés de cettefaçon,lethèmepeut êtremis àjour sansperdre votretravailpersonnalisé.
Votrethèmeprêt à l'emploi vitici ------------------------------------ \\ Site \ wp-content \themes \ some_theme
Lethème de votreenfant vitici --------------------------- \\ Site \ wp-content \themes \ some_theme-child
Vos styleset modèlespersonnaliséset toutes vosinclusions (des élémentstels que dujavascriptpersonnalisé,desimages quine sontpasenregistrées dans WP,despolicespersonnalisées,desfichiers de donnéesjsonet tous lesplugins que vouspourriezmettreen file d'attente) doivent être déplacés vers le dossierenfant À L'EXTÉRIEUR duthème .
\thèmes \ un_thème \themes \ some_theme-child \ (tous vosfichiers demodèle PHPpersonnalisésici) \themes \ some_theme-child \images \themes \ some_theme-child \ comprend \themes \ some_theme-child \ languages \themes \ some_theme-child \json \themes \ some_theme-child \ style
Pour vospages de stylepersonnalisé (pas le style remplacé duthème.css ),mettezen file d'attente avec wp_enqueue_style ('some-css',get_stylesheet_directory () . '/style/some.css ',false,' 0.0.1 ',' all ');
Utilisez get_stylesheet_directory_uri () avec vos appels 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.
Leproblème quej'aiest que leget_template_directory_uripointe vers lethèmeparent comme
site/wp-content/themes/twentythirteen/myGallery/gallery_functions_include.php
maisje veux qu'ilpointe versmonthèmeenfant qui devrait être
site/wp-content/themes/child-twentythirteen/myGallery/gallery_functions_include.php
ce quej'utiliseest
include (TEMPLATEPATH . '/myGallery/gallery_functions_include.php');