Saya perlu mendapatkan URL direktori tema saya untuk referensi gambar di direktori gambar / header tema. Bagaimana ini dilakukan dalam PHP?
theme-development
Michael Crenshaw
sumber
sumber
get_template_directory_uri()
Apa yang dikatakan @EAMann , dengan peringatan. Eric benar tentang pendekatan umum dan bagaimana fungsi
bloginfo()
danget_bloginfo()
kerjanya dan tentang cara melewatkan parameter'template_directory'
untuk mendapatkan nilai yang Anda butuhkan untuk (sebagian besar) tema.Namun ada peringatan dan peringatan itu dengan Tema Anak yang lebih baru . Jika Anda menggunakan tema anak maka
'template_directory'
mungkin bukan yang Anda inginkan kecuali Anda benar-benar mencoba merujuk ke gambar yang ada di direktori tema induk. Alih-alih untuk tema anak-anak apa yang mungkin Anda inginkan adalah untuk lulusstylesheet_directory
(saya tahu, saya tahu, nama tidak memberi tahu Anda apa itu tapi hei, begitulah adanya!) Meminjam sedikit dari jawaban Eric menggunakanstylesheet_directory
akan terlihat seperti ini ( Saya menyingkat contoh sehingga tidak akan membungkus):Untuk mengilustrasikan poin saya menulis file mandiri cepat, Anda dapat memasukkan root situs web Anda
test.php
dan menjalankan untuk melihat apa yang dihasilkannya. Jalankan pertama dengan tema biasa seperti TwentyTen kemudian jalankan dengan tema anak:Jika Anda memperhatikan hal-hal yang mungkin Anda perhatikan ada banyak hal yang dapat Anda sampaikan
bloginfo()
danget_bloginfo()
; pelajari kode dan tangkapan layar di bawah untuk ide-ide.Melihat tangkapan layar Anda dapat melihat bahwa
stylesheet_directory
mengembalikan hal yang sama seperti'template_directory'
untuk tema biasa tetapi nilai yang berbeda, dan mungkin nilai yang Anda butuhkan untuk tema anak.(sumber: mikeschinkel.com )
Omong-omong, jika Anda tidak terbiasa dengan Tema Anak di mana ada dua Jawaban WordPress lain yang mungkin membantu:
sumber
get_stylesheet_directory_uri()
. Haruskah saya menggunakan ol biasaget_stylesheet_directory()
?Seluruh struktur tema dibangun di atas dua opsi -
template
(memegang nama folder tema induk) danstylesheet
(memegang folder nama child child). Jika tidak ada tema anak yang digunakan, ini adalah sama.Untuk memiliki fleksibilitas filter, daripada opsi akses secara langsung, ada sesuai
get_template()
danget_stylesheet()
.Sekarang satu-satunya hal yang hilang adalah menggabungkan mereka dengan lokasi folder tema. Ini dapat dilakukan dengan
get_theme_root_uri()
dan lagi dengan mudah dibungkusget_template_directory_uri()
danget_stylesheet_directory_uri()
.[get_]bloginfo()
dengantemplate_directory
ataustylesheet_directory
argumen hanya membungkus ini dan ada sedikit alasan untuk menggunakannya seperti itu. Saya akan mengatakan itu hanya membingungkan dengan memiliki direktori argumen mengatakan (umumnya berkaitan dengan jalur lokal), tetapi mengembalikan URL.Ringkasan:
get_template_directory_uri()
untuk merujuk hanya tema atau indukget_stylesheet_directory_uri()
untuk tema anaksumber
Saya menggunakan ini
(dirname(get_bloginfo('stylesheet_url')))
sumber