get_template_directory_uri zeigt auf das übergeordnete Thema, nicht auf das untergeordnete Thema
2 Antworten
- Stimmen
-
- 2016-06-18
get_template_directory_uri()
gibt immer den URI des aktuellen übergeordneten Themas zurück.Um stattdessen den URI des untergeordneten Themas abzurufen,müssen Sie
get_stylesheet_directory_uri()
verwenden.Diese finden Siein der Dokumentation zusammenmit einer Liste weiterernützlicher Funktionen zum Abrufen verschiedener Speicherortefür Themenverzeichnisse.
Wenn Sieeine Konstantebevorzugen,entspricht
TEMPLATEPATH
dem Aufruf vonget_template_directory()
(dh dem übergeordneten Thema) undSTYLESHEETPATH
ähnelt dem Aufruf vonget_stylesheet_directory()
(dh dem untergeordneten Thema).Diese Konstanten werden vom WordPress-Kernin
wp-includes/default-constants.php
festgelegt und sehenim Grunde so aus:define('TEMPLATEPATH', get_template_directory()); ... define('STYLESHEETPATH', get_stylesheet_directory());
Wenn kein untergeordnetes Thema vorhandenist,geben die Funktionen "Vorlage" und "Stylesheet" den Speicherort des übergeordneten Themas zurück.
Beachten Sie den Unterschied zwischen diesen Funktionen und den Funktionen,diemit
_uri
enden. Diesegeben den absoluten Serverpfad zurück (z. B./home/example/public_html/wp-content/yourtheme
),während die Funktionen_uri
die öffentliche Adresse (auchbekannt als URL) zurückgeben - z.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
.-
Wasistmit include (TEMPLATEPATH. '/myGallery/gallery_functions_include.php');Diesergeht auchin das übergeordnete Verzeichniswhat about include (TEMPLATEPATH . '/myGallery/gallery_functions_include.php'); this one also goes to the parent directory
- 0
- 2016-06-18
- Elroy Fernandes
-
@ ElroyFernandes Ich habe dies zumeiner Antwort hinzugefügt.STYLESHEETPATHist die Konstante,die Sie stattdessenmöchten@ElroyFernandes I've added this to my answer. STYLESHEETPATH is the constant you'd want instead
- 0
- 2016-06-18
- Tim Malone
-
Vielen Dank,dass Sie die Fragebeantwortet haben,anstattnur RTM zu sagen.Diestauchte zuerstin meinen Suchergebnissen auf.Thanks for answering the question instead of just saying RTM. This popped up first in my search results.
- 2
- 2017-05-04
- rinogo
-
Gute Antwort,aber schlechte Benennung seitens WordPress -nichtnurfür Stylesheets,sondern auchfür JS,Assets,Includes usw.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 Beginnen Sienicht damit,Inkonsistenzenin WordPress zubenennen - dasistein langer und kurviger Weg,der dahinführt,wer weiß wo!;)@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
Sie sollten Ihrebenutzerdefinierten Vorlagen,dienicht vom aktiven Themagesteuert werden,in einen untergeordneten Ordner verschieben.
Halten Sie das Thema von allenbenutzerdefinierten Dateiengetrennt,damit das Thema aktualisiert werden kann,ohne dass Ihrebenutzerdefinierte Arbeit verlorengeht.
Hier lebt Ihr Out-of-the-Box-Thema ------------------------------------ \\ Site \ wp-content \theme \ some_theme
Ihr Kinderthema lebt hier --------------------------- \\ Site \ wp-content \themes \ some_theme-child
Ihrebenutzerdefinierten Stile und Vorlagen sowie alle Ihre Includes (z. B.benutzerdefiniertes Javascript,Bilder,dienichtin WPgespeichert sind,benutzerdefinierte Schriftarten,JSON-Datendateien und Plugins,die Siemöglicherweisein die Warteschlange stellen) solltenin den untergeordneten Ordner AUSSERHALB des Themas verschoben werden .
\theme \ some_theme \theme \ some_theme-child \ (alle Ihrebenutzerdefinierten PHP-Vorlagendateien hier) \theme \ some_theme-child \images \theme \ some_theme-child \enthält \ Themes \ Some_theme-Child \ Languages \theme \ some_theme-child \json \theme \ some_theme-child \ style
Für Ihrebenutzerdefinierten Stilseiten (nicht die überschriebene style.css des Themas)in die Warteschlangemit wp_enqueue_style ('some-css',get_stylesheet_directory () . '/style/some.css ',false,' 0.0.1 ',' all ');
Verwenden Sie get_stylesheet_directory_uri () mit Ihren xhr-Aufrufen usw.
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.
Das Problem,dasich habe,ist,dassget_template_directory_uri auf das übergeordnete Thema wie
verweistsite/wp-content/themes/twentythirteen/myGallery/gallery_functions_include.php
aberichmöchte,dasses aufmein untergeordnetes Thema verweist,das
sein solltesite/wp-content/themes/child-twentythirteen/myGallery/gallery_functions_include.php
Ich verwende
include (TEMPLATEPATH . '/myGallery/gallery_functions_include.php');