Temanın resim / başlık dizinindeki bir resme başvuruda bulunmak için tema dizininin URL’sini almam gerekiyor. PHP'de bu nasıl yapılır?
Temanın resim / başlık dizinindeki bir resme başvuruda bulunmak için tema dizininin URL’sini almam gerekiyor. PHP'de bu nasıl yapılır?
Yanıtlar:
Bu işlev tema dizini URL'sini döndürür , böylece diğer işlevlerde de kullanabilirsiniz:
get_bloginfo('template_directory');
Alternatif olarak, bu işlev olacaktır yankı tarayıcıya tema dizini URL:
bloginfo('template_directory');
Dolayısıyla, temalar images/headers
klasöründeki bir resme örnek :
<img src="<?php bloginfo('template_directory'); ?>/images/headers/image.jpg" />
get_template_directory_uri()
@EAMann ne dedi, bir ihtar ile. Eric genel yaklaşım ve nasıl fonksiyonları hakkında doğru bloginfo()
ve get_bloginfo()
çalışma ve parametre geçmesi konusunda 'template_directory'
(çoğu) temalar için ihtiyaç değer elde etmek.
Ancak bir uyarı var ve bu uyarı yeni Çocuk Temalarında . Bir alt tema kullanıyorsanız 'template_directory'
, aslında ana tema dizinindeki bir resme başvurmaya çalışmadığınız sürece muhtemelen istediğiniz bir şey değildir. Çocuk temaları yerine muhtemelen istediğin şey geçmek stylesheet_directory
(biliyorum, biliyorum, isimler sana ne olduklarını söylemedi ama hey, işte böyle oldu!) Eric'in cevabını kullanarak biraz ödünç almak stylesheet_directory
şöyle olurdu ( Örneği kısaltdım, böylece sarmayacaktı):
<img src="<?php bloginfo('stylesheet_directory'); ?>/images/header.jpg" />
Noktayı göstermek için hızlı ve bağımsız bir dosya yazdım, web sitenizin kök dizinine bırakabilir test.php
ve neyin çıktı verdiğini görmek için koşabilirsiniz. Önce TwentyTen gibi normal bir temayla koşun, sonra bir çocuk temayla koşun:
<?php
/*
* test.php - Test the difference between Regular and Child Themes
*
*/
include "wp-load.php";
$bloginfo_params = array(
'admin_email',
'atom_url',
'charset',
'comments_atom_url',
'comments_rss2_url',
'description',
'home',
'html_type',
'language',
'name',
'pingback_url',
'rdf_url',
'rss2_url',
'rss_url',
'siteurl',
'stylesheet_directory',
'stylesheet_url',
'template_directory',
'template_url',
'text_direction',
'url',
'version',
'wpurl',
);
echo '<table border="1">';
foreach($bloginfo_params as $param) {
$info = get_bloginfo($param);
echo "<tr><th>{$param}:</th><td>{$info}</td></tr>";
}
echo '</table>';
Bir şeyleri fark ederseniz, geçebileceklerinizden çok daha fazlası olduğunu farkedebilirsiniz bloginfo()
ve get_bloginfo()
; fikirler için kodu ve aşağıdaki ekran görüntüsünü inceleyin.
Ekran görüntüsüne bakıldığında bunun normal bir temayla stylesheet_directory
aynı şeyi 'template_directory'
ancak farklı bir değer ve muhtemelen bir alt tema için ihtiyacınız olan değeri döndürdüğünü görebilirsiniz .
(kaynak: mikeschinkel.com )
Bu ekran görüntüsünün netliği için,
wp30.dev
yalnızca yerel bilgisayarımda çalışan bir etki alanı. Şu anda bir WordPress 3.0.1 örneği ve dizüstü bilgisayarımda127.0.0.1
(aynı) olarak yapılandırılmış ve bununlocalhost
gibi geçici örnekleri test etmek için kullanıyorum. VirtualHostX'i Mac OS X'te bu özel yönlendirilemeyen.dev
etki alanlarını ayarlamama yardımcı olmak için kolaylık olarak kullandım ancak herkes bilgisayarın ana bilgisayar dosyasını ve? httpd.conf dosyası.
Bu arada, yardımcı olabilecek diğer iki WordPress Yanıtı olan Çocuk Temalarını bilmiyorsanız :
get_stylesheet_directory_uri()
. Düz ol kullanmalı mıyım get_stylesheet_directory()
?
Temanın tüm yapısı iki seçeneğin üzerine kuruludur - template
(ana tema klasör adını stylesheet
tutan ) ve (alt tema klasör adını tutan). Kullanılan çocuk teması yoksa bunlar aynıdır.
Filtrelerin esnekliğini sağlamak için doğrudan erişim seçeneğinden ziyade, buna göre get_template()
ve vardır get_stylesheet()
.
Şimdi eksik olan tek şey, bunları tema klasörü konumuyla birleştirmek. Bu ile yapılabilir get_theme_root_uri()
ve yine uygun sarılmış get_template_directory_uri()
ve get_stylesheet_directory_uri()
.
[get_]bloginfo()
ile template_directory
veya stylesheet_directory
argümanlarla yalnızca bunları sarar ve böyle kullanmak için çok az neden vardır. Sadece dizini (genellikle yerel yollarla ilgili) söyleyen bir argüman alarak kafa karıştırıcı olduğunu, ancak URL’leri döndürdüğünü söyleyebilirim.
Sumary:
get_template_directory_uri()
ifade etmek için kullanınget_stylesheet_directory_uri()
için yalnızca veya çocuk teması