Preciso obter o URL do meu diretório de temas para fazer referência a uma imagem no diretório image / headers do tema. Como isso é feito em PHP?
theme-development
Michael Crenshaw
fonte
fonte
get_template_directory_uri()
O que @EAMann disse, com uma ressalva. Eric está certo sobre a abordagem geral, como as funções
bloginfo()
e oget_bloginfo()
trabalho e sobre como passar o parâmetro'template_directory'
para obter o valor necessário para a maioria dos temas.No entanto, há uma ressalva e essa ressalva é com os Temas filho mais recentes . Se você estiver usando um tema filho,
'template_directory'
provavelmente não é o que deseja, a menos que esteja realmente tentando se referir a uma imagem que esteja no diretório do tema pai. Em vez disso, para temas filhos, o que você provavelmente quer é passarstylesheet_directory
(eu sei, eu sei, os nomes não dizem o que são, mas ei, é assim que as coisas são!)stylesheet_directory
. Abreviei o exemplo para que não fosse quebrado):Para ilustrar o ponto em que escrevi um arquivo autônomo rápido, você pode soltar na raiz do seu site
test.php
e executar para ver o que ele gera. Primeiro, execute com um tema regular como o TwentyTen e, em seguida, execute com um tema filho:Se você notar coisas, pode perceber que há muito mais para o que você pode passar
bloginfo()
eget_bloginfo()
; estude o código e a captura de tela abaixo para obter idéias.Observando a captura de tela, você pode ver que
stylesheet_directory
retorna a mesma coisa que'template_directory'
para um tema comum, mas com um valor diferente e provavelmente o valor necessário para um tema filho.(fonte: mikeschinkel.com )
A propósito, caso você não esteja familiarizado com os Temas filho, há outras duas respostas do WordPress que podem ajudar:
fonte
get_stylesheet_directory_uri()
. Devo estar usando simples ol 'get_stylesheet_directory()
?Toda a estrutura do tema se baseia em duas opções -
template
(mantendo o nome da pasta do tema pai) estylesheet
(mantendo o nome da pasta do tema filho). Se não houver um tema filho usado, eles serão os mesmos.Para ter flexibilidade de filtros, em vez de acessar a opção diretamente, existem
get_template()
eget_stylesheet()
.Agora, a única coisa que falta é combiná-los com o local da pasta dos temas. Isso pode ser feito com
get_theme_root_uri()
e novamente convenientemente envolvido emget_template_directory_uri()
eget_stylesheet_directory_uri()
.[get_]bloginfo()
comtemplate_directory
oustylesheet_directory
argumentos apenas os envolve e há poucas razões para usá-lo assim. Eu diria que é apenas confuso ter argumento dizendo diretório (geralmente relacionado a caminhos locais), mas retornando URLs.Sumário:
get_template_directory_uri()
para se referir apenas ao tema ou paiget_stylesheet_directory_uri()
para tema único ou filhofonte
Eu uso isso
(dirname(get_bloginfo('stylesheet_url')))
fonte