web-dev-qa-db-fra.com

get_template_directory_uri pointant sur le thème parent et non sur le thème enfant

Le problème que j'ai est que le get_template_directory_uri pointe vers le thème parent comme site/wp-content/themes/twentythirteen/myGallery/gallery_functions_include.php

mais je veux qu'il pointe vers mon thème enfant qui devrait être site/wp-content/themes/child-twentythirteen/myGallery/gallery_functions_include.php

ce que j'utilise est include (TEMPLATEPATH . '/myGallery/gallery_functions_include.php');

29
Elroy Fernandes

get_template_directory_uri() renverra toujours l'URI du thème parent actuel.

Pour obtenir l'URI du thème enfant, vous devez utiliser get_stylesheet_directory_uri().

Vous pouvez trouver ces dans la documentation , avec une liste d’autres fonctions utiles pour obtenir divers emplacements de répertoires de thèmes.


Si vous préférez utiliser une constante, alors TEMPLATEPATH s'apparera à appeler get_template_directory() (c'est-à-dire le thème parent) et STYLESHEETPATH s'appellera à appeler get_stylesheet_directory() (c'est-à-dire le thème enfant).

Ces constantes sont définies par le noyau WordPress dans wp-includes/default-constants.php et ressemblent en gros à ceci:

define('TEMPLATEPATH', get_template_directory());
...
define('STYLESHEETPATH', get_stylesheet_directory());

S'il n'y a pas de thème enfant, les fonctions 'template' et 'feuille de style' renverront l'emplacement du thème parent.

Notez la différence entre ces fonctions et les fonctions se terminant par _uri - elles renverront le chemin absolu du serveur (par exemple, /home/example/public_html/wp-content/yourtheme), alors que les fonctions _uri renverront l'adresse publique (ou URL) - par exemple. http://example.com/wp-content/themes/yourtheme.

60
Tim Malone

Vous devez déplacer vos modèles personnalisés, ceux qui ne sont pas contrôlés par le thème actif, vers un dossier enfant.

Gardez le thème séparé de tous les fichiers personnalisés de cette manière, vous pourrez le mettre à jour sans perdre votre travail personnalisé.

Votre thème clé en main est ici 
 ---------------------------------- - 
 \\ Site\wp-content\themes\some_theme
Votre thème enfant réside ici 
 --------------------------- 
 \\ Site\wp-content\themes\une_theme-enfant

Vos styles et modèles personnalisés, ainsi que tous vos éléments inclus (éléments tels que le javascript personnalisé, les images non enregistrées dans WP, les polices personnalisées, les fichiers de données json et tous les plug-ins que vous pourriez mettre en file d'attente) doivent être déplacés vers le dossier enfant À l'extérieur du thème.

\themes\some_theme 
\themes\some_theme-child\(tous vos fichiers de modèles php personnalisés ici) 
\themes\some_theme-child\images 
\themes\some_theme-child\inclut 
\themes\certains_theme-enfant\langages 
\themes\certains_theme-enfant\json 
\themes\certains_theme-enfant\style 

Pour vos pages de style personnalisées ( pas le style.css ) remplacé du thème, mettez en file d'attente avec wp_enqueue_style ('some-css', get_stylesheet_directory () . '/Style/some.css', false, ' 0,0,1 ',' tous ');

Utilisez get_stylesheet_directory_uri () avec vos appels xhr, etc.

0
Greg Bologna