Je dois obtenir l'URL de mon répertoire de thèmes pour référencer une image dans le répertoire images / en-têtes du thème. Comment cela se fait-il en PHP?
theme-development
Michael Crenshaw
la source
la source
get_template_directory_uri()
Ce que @EAMann a dit, avec une mise en garde. Eric a raison sur l'approche générale et sur le fonctionnement des fonctions
bloginfo()
et duget_bloginfo()
travail, ainsi que sur la manière de transmettre le paramètre'template_directory'
pour obtenir la valeur dont vous avez besoin pour la plupart des thèmes.Cependant, il y a une mise en garde et cette mise en garde est avec les nouveaux thèmes de l'enfant . Si vous utilisez un thème enfant, ce
'template_directory'
n’est probablement pas ce que vous voulez, sauf si vous essayez de vous référer à une image qui se trouve dans le répertoire du thème parent. Au lieu de cela pour les thèmes de l' enfant ce que vous voulez sans doute est de passerstylesheet_directory
(je sais, je sais, les noms ne vous disent pas ce qu'ils sont mais bon, c'est juste la façon dont il est!) Empruntant un peu de la réponse d'Eric à l' aidestylesheet_directory
ressemblerait à ceci ( J'ai raccourci l'exemple pour ne pas envelopper):Pour illustrer ce point, j’ai écrit un fichier autonome rapide que vous pouvez déposer à la racine de votre site Web au fur
test.php
et à mesure de l’exécution et voir ce qu’il génère. D'abord exécuté avec un thème régulier comme TwentyTen, puis avec un thème enfant:Si vous remarquez des choses, vous remarquerez peut-être qu'il y a beaucoup plus à ce que vous pouvez transmettre
bloginfo()
etget_bloginfo()
; étudiez le code et la capture d'écran ci-dessous pour des idées.En regardant la capture d'écran, vous pouvez voir que
stylesheet_directory
revient la même chose que'template_directory'
pour un thème standard est renvoyée, mais une valeur différente et probablement celle dont vous avez besoin pour un thème enfant.(la source: mikeschinkel.com )
À propos, au cas où vous ne connaissez pas thèmes pour enfants, deux autres réponses WordPress pourraient vous aider:
la source
get_stylesheet_directory_uri()
. Devrais-je utiliser plain ol 'get_stylesheet_directory()
?Toute la structure du thème repose sur deux options:
template
(en conservant le nom du dossier de thème parent) et enstylesheet
(le nom de dossier du thème enfant). S'il n'y a pas de thème enfant utilisé, ce sont les mêmes.Pour avoir la flexibilité des filtres, plutôt que l'option d'accès direct, il existe en conséquence
get_template()
etget_stylesheet()
.Il ne reste plus maintenant qu’à combiner ceux-ci avec l’emplacement du dossier de thèmes. Cela peut être fait avec
get_theme_root_uri()
et à nouveau bien emballéget_template_directory_uri()
etget_stylesheet_directory_uri()
.[get_]bloginfo()
avectemplate_directory
ou desstylesheet_directory
arguments ne fait que les envelopper et il y a peu de raisons de l’utiliser comme ça. Je dirais qu'il est seulement déroutant d'avoir l'argument disant directory (concerne généralement les chemins locaux), mais de retourner les URL.Résumé:
get_template_directory_uri()
pour désigner seul thème ou un thème parentget_stylesheet_directory_uri()
à seulement ou enfant thèmela source
Je l'utilise
(dirname(get_bloginfo('stylesheet_url')))
la source