मुझे विषय की छवि / हेडर निर्देशिका में छवि का संदर्भ देने के लिए अपनी थीम निर्देशिका का URL प्राप्त करने की आवश्यकता है। यह PHP में कैसे किया जाता है?
मुझे विषय की छवि / हेडर निर्देशिका में छवि का संदर्भ देने के लिए अपनी थीम निर्देशिका का URL प्राप्त करने की आवश्यकता है। यह PHP में कैसे किया जाता है?
जवाबों:
यह फ़ंक्शन थीम निर्देशिका URL लौटाएगा ताकि आप इसे अन्य कार्यों में उपयोग कर सकें:
get_bloginfo('template_directory');
वैकल्पिक रूप से, यह फ़ंक्शन ब्राउज़र में थीम डायरेक्टरी URL को प्रतिध्वनित करेगा :
bloginfo('template_directory');
इसलिए थीम images/headers
फ़ोल्डर में एक छवि के लिए एक उदाहरण होगा:
<img src="<?php bloginfo('template_directory'); ?>/images/headers/image.jpg" />
get_template_directory_uri()
क्या @EAMann एक चेतावनी के साथ, ने कहा। एरिक सामान्य दृष्टिकोण और कार्यों bloginfo()
और get_bloginfo()
काम के बारे में सही है और 'template_directory'
आपको (अधिकांश) थीम के लिए आवश्यक मान प्राप्त करने के लिए पैरामीटर कैसे पास करना है ।
हालाँकि, एक चेतावनी है और यह चेतावनी नए बाल विषयों के साथ है । यदि आप एक बाल विषय का उपयोग कर रहे हैं तो 'template_directory'
संभवतः वह नहीं है जो आप चाहते हैं जब तक कि आप वास्तव में एक छवि को संदर्भित करने का प्रयास नहीं कर रहे हैं जो कि मूल विषय निर्देशिका में है। चाइल्ड थीम के लिए आप जो चाहते हैं, वह पास हो जाता है stylesheet_directory
(मुझे पता है, मुझे पता है, नाम आपको यह नहीं बताते हैं कि वे क्या हैं लेकिन हे, बस यही तरीका है!) एरिक के जवाब से कुछ उधार लेते हुए stylesheet_directory
इस तरह दिखना होगा ( मैंने उदाहरण को छोटा कर दिया ताकि यह लपेट न जाए):
<img src="<?php bloginfo('stylesheet_directory'); ?>/images/header.jpg" />
उस बिंदु को स्पष्ट करने के लिए मैंने एक त्वरित स्टैंडअलोन फ़ाइल लिखी जिसे आप अपनी वेबसाइट के रूट में छोड़ सकते test.php
हैं और यह देख सकते हैं कि यह आउटपुट क्या है। पहले ट्वेंटीटेन जैसे नियमित विषय के साथ दौड़ें और फिर बच्चे के विषय के साथ दौड़ें:
<?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>';
यदि आप उन चीजों को नोटिस करते हैं जो आप नोटिस कर सकते हैं कि आपके पास bloginfo()
और पास करने के लिए बहुत कुछ है get_bloginfo()
; विचारों के लिए नीचे दिए गए कोड और स्क्रीनशॉट का अध्ययन करें।
स्क्रीनशॉट को देखकर आप देख सकते हैं कि एक नियमित विषय के लिए एक stylesheet_directory
ही चीज़ लौटाता है, 'template_directory'
लेकिन एक अलग मूल्य, और शायद एक बच्चे के विषय के लिए आपकी आवश्यकता है।
(स्रोत: mikeschinkel.com )
इस स्क्रीनशॉट पर स्पष्टता के लिए,
wp30.dev
एक डोमेन है जो केवल मेरे स्थानीय कंप्यूटर पर चलता है। यह वर्तमान में वर्डप्रेस 3.0.1 का एक उदाहरण है और इसे मेरे लैपटॉप पर127.0.0.1
(उसी के रूप मेंlocalhost
) कॉन्फ़िगर किया गया है और मैं इसका उपयोग इस तरह के तदर्थ उदाहरणों के परीक्षण के लिए करता हूं। मैंने मैक ओएस एक्स पर एक सुविधा के रूप में VirtualHostX का उपयोग किया, जिससे मुझे उन निजी गैर-रिटेबल.dev
डोमेन को सेट करने में मदद मिली, लेकिन कोई भी इसे कंप्यूटर की होस्ट फ़ाइल और द एडिट करके मैन्युअल रूप से कर सकता है? httpd.conf फ़ाइल।
वैसे, यदि आप बाल विषय-वस्तु से परिचित नहीं हैं, तो दो अन्य वर्डप्रेस उत्तर जो मदद कर सकते हैं:
get_stylesheet_directory_uri()
। क्या मुझे सादे ओल का उपयोग करना चाहिए get_stylesheet_directory()
?
थीम की पूरी संरचना दो विकल्पों में से शीर्ष पर template
बनती है - (पेरेंट थीम फोल्डर नामरे को पकड़ना) और stylesheet
(चाइल्ड थीम फोल्डर नम्र को पकड़ना)। यदि कोई बाल विषय नहीं है, तो ये समान हैं।
सीधे पहुँच विकल्प के बजाय फ़िल्टर का लचीलापन होने के लिए, तदनुसार get_template()
और हैं get_stylesheet()
।
अब केवल एक चीज गायब है जो थीम फ़ोल्डर स्थान के साथ संयोजन करना है। इस के साथ किया जा सकता है get_theme_root_uri()
और फिर आसानी से में लिपटे get_template_directory_uri()
और get_stylesheet_directory_uri()
।
[get_]bloginfo()
template_directory
या stylesheet_directory
तर्कों के साथ केवल ये लपेटता है और इसे इस तरह उपयोग करने का बहुत कम कारण है। मैं कहूंगा कि यह केवल तर्क कहने से भ्रमित है निर्देशिका (आमतौर पर स्थानीय पथों से संबंधित है), लेकिन URL वापस करना।
Sumary:
get_template_directory_uri()
को संदर्भित करने के लिए उपयोग करेंget_stylesheet_directory_uri()
लिए उपयोग करें