2012-12-12 11 views
5

में एक फीचर्ड छवि कैप्शन कैसे जोड़ें I उम्मीद है कि कोई समस्या के साथ मेरी सहायता करने में सक्षम हो सकता है। मैं अपने एक दोस्त के लिए एक समाचार वेबसाइट बना रहा हूँ। साइट एक साथ आने शुरू हो रही है, लेकिन मुझे यह नहीं पता कि फीचर्ड छवियों में कैप्शन कैसे जोड़ना है। मैं आज पूरे वेब पर देख रहा हूं, PHP चादरों में कोड जोड़कर इसे करने के कई तरीके हैं, लेकिन मुझे यकीन नहीं है कि मैं क्या कर रहा हूं।वर्डप्रेस

मैंने functions.php कोड में इतना कोड जोड़ा है, लेकिन सबकुछ जोड़ी के आकार में जाता है।

मैं अपनी अंगुलियों को पार कर रहा हूं, कोई मुझे क्या करना है इसके माध्यम से मुझे टाइप करके मेरी सहायता करने में सक्षम होगा।

आपकी मदद के लिए अग्रिम धन्यवाद।

तरह का संबंध

जॉन

+0

"फीचर्ड छवियों" से आपका क्या मतलब है? क्या आपका मतलब है कि आप कुछ छवियों को कैप्शन और अन्य नहीं चाहते हैं? चित्रों, कैप्शन इत्यादि को प्रदर्शित करने के लिए आप किस संदर्भ में व्याख्या करना चाहते हैं, – barakadam

+1

एक विशेष छवि में प्रत्येक पोस्ट और पेज के लिए अपना स्वयं का अपलोड स्थान होता है, और इसे "फीचर्ड इमेज" कहा जाता है। तो मुझे लगता है कि वह यही बात कर रहा है। एक त्वरित Google खोज ने एक सरल समाधान प्रदान किया, मैं इसे नीचे पोस्ट करूंगा। – AndyWarren

उत्तर

9

पहले, आप अपने functions.php फ़ाइल में निम्न कोड ड्रॉप करने की आवश्यकता होगी:

function the_post_thumbnail_caption() { 
    global $post; 

    $thumbnail_id = get_post_thumbnail_id($post->ID); 
    $thumbnail_image = get_posts(array('p' => $thumbnail_id, 'post_type' => 'attachment')); 

    if ($thumbnail_image && isset($thumbnail_image[0])) { 
    echo '<span>'.$thumbnail_image[0]->post_excerpt.'</span>'; 
    } 
} 

सही है कि में समापन पीएचपी टैग के सामने चिपकाएँ फ़ाइल, अगर कोई बंद PHP टैग नहीं है तो सुनिश्चित करें कि आपके द्वारा पेस्ट किए गए कोड के नीचे कोई खाली रेखा नहीं है क्योंकि इससे समस्याएं पैदा हो सकती हैं।

फिर, जहाँ आप शीर्षक चाहते हैं प्रदर्शित करने के लिए, तो आप इस से कॉल करने की आवश्यकता होगी:

<?php the_post_thumbnail_caption(); ?>

आप अनिश्चित हैं, तो जहां अपने टेम्पलेट फ़ाइलों में कॉल डाल करने के लिए , आपको यह पता लगाना होगा कि <?php the_post_thumbnail(); ?> कहलाया जा रहा है। बस अपनी टेम्पलेट फ़ाइल में उस पंक्ति की तलाश करें, और उसके पास फ़ंक्शन कॉल रखें, जहां भी आप कैप्शन को प्रदर्शित करना चाहते हैं। फ़ंक्शन स्वचालित रूप से एक स्पैन टैग में कैप्शन को लपेटता है ताकि आप इसे सीएसएस के साथ लक्षित कर सकें, लेकिन आप किसी भी टैग में फ़ंक्शन कॉल को भी लपेट सकते हैं।

इसलिए उदाहरण के लिए, यदि आपके टेम्पलेट फ़ाइल इस या कुछ बहुत समान के साथ विशेष रुप से प्रदर्शित छवि बुला रहा है:

<?php 
    if (has_post_thumbnail()) { 
     the_post_thumbnail(); 
} ?> 

आप इस तरह यह करने के लिए शीर्षक कॉल जोड़ना चाहेंगे:

<?php 
    if (has_post_thumbnail()) { 
     the_post_thumbnail(); 
} ?> 
<?php the_post_thumbnail_caption(); ?> 

मुझे बताएं कि आपको किसी अन्य स्पष्टीकरण की आवश्यकता है या नहीं।

+0

हाय वहाँ एंडी, मेरी मदद करने के लिए समय लेने के लिए धन्यवाद। मैं अल्टीमेटम नामक एक बहुत ही अच्छे थीम निर्माता का उपयोग कर रहा हूं, कृपया निम्न लिंक देखें। http://ultimatumtheme.com/ मैंने आज सुबह सभी फ़ोल्डर्स में देखा है, लेकिन आपके द्वारा उल्लेख की गई PHP फ़ाइलों को नहीं मिल रहा है। तो मैंने आपकी पोस्ट की प्रतिलिपि बनाई है और आपको श्रेय दिया है और इसे अल्टीमेटम मंच पोस्ट किया है, उम्मीद है कि कोई मुझे बताएगा कि मुझे नोटपैड ++ में कौन सी फाइल खोलने की आवश्यकता है और इसमें जोड़ें। – TLCJohn

+0

कोई समस्या नहीं, उम्मीद है कि यह मदद करता है। एक बार जब आप इसे समझ लेंगे, तो कृपया मेरा जवाब यहां पर स्वीकार करें यदि आप यही चाहते थे। मैं आपके द्वारा प्रदान किए गए लिंक पर गया था और एक प्रति डाउनलोड करने वाला था इसलिए मुझे आपके लिए सही फाइलें मिल सकती थीं, लेकिन यह एक महंगी टूल थी। ऐसा लगता है कि यह किसी प्रकार का फ्रंट एंड ड्रैग और ड्रॉप बिल्डर है? तो इसमें अधिक कोड और फ़ाइलें हो सकती हैं जो एक सामान्य वर्डप्रेस थीम है। – AndyWarren

-1
the_post_thumbnail();     // without parameter -> Thumbnail 

the_post_thumbnail('thumbnail');  // Thumbnail (default 150px x 150px max) 
the_post_thumbnail('medium');   // Medium resolution (default 300px x 300px max) 
the_post_thumbnail('large');   // Large resolution (default 640px x 640px max) 
the_post_thumbnail('full');   // Original image resolution (unmodified) 

the_post_thumbnail(array(100,100)); // Other resolutions 
+2

आपको यह जवाब हटा देना चाहिए। यह पूरी तरह गलत है, और आप शायद कम हो जाएंगे। –

0

मैं जानता हूँ कि यह एक पुराने सवाल है, लेकिन मैं, एक और समाधान है कि दूसरों को पसंद कर सकते हैं की पेशकश करने के लिए यदि आप बल्कि (कम डेटाबेस कॉल) डेटा कि पहले से ही उपलब्ध है के साथ सौदा चाहते थे वर्डप्रेस में पहले से ही उपलब्ध क्षेत्रों का उपयोग करते समय ।

get_the_post_thumbnail() के आउटपुट के बाद से पूरे आईएमजी टैग को कैप्शन फ़ील्ड से पूर्व-पॉप्युलेट किए गए alt टैग के साथ एक स्ट्रिंग के रूप में लौटाता है, तो आप एक्सएमएल पार्सर या रेगेक्स का उपयोग करके छवि टैग के alt टैग को निकाल सकते हैं।

मैं ऐसा किया:

function get_the_post_thumbnail_caption($img_tag) { 
     preg_match('/alt="(.*)"/i', $img_tag, $caption); 
     return array_pop($caption); 
    } 

और टेम्पलेट में:

<?php 
    if ($featured = get_the_post_thumbnail(get_the_ID())): 

     echo $featured; 
     preg_match('/alt="(.*)"/i', $featured, $caption); 

     if ($caption) { 
      echo wpautop(array_pop($caption)); 
     } 
    endif; 
    ?> 

आप मूल रूप से स्वीकार किए जाते हैं जवाब की तरह एक समारोह में यह चाहते हैं, तो आप सीधे अपने कार्य करने के लिए img टैग पारित:

$img = get_the_post_thumbnail(get_the_ID()); // or any id 
    echo wpautop(get_the_post_thumbnail_caption($img)); 

ध्यान दें कि यदि आप 'alt text' फ़ील्ड को पॉप्युलेट करते हैं, तो यह कैप्शन फ़ील्ड डेटा को ओवरराइट करेगा आईएमजी टैग आउटपुट करते समय। यदि आवश्यक हो तो आप फ़िल्टर के साथ उस व्यवहार को ओवरराइड कर सकते हैं।

+0

एक और बात: आप 'preg_match_all' फ़ंक्शन और' /(alt|title|src)="(.*)"/i 'जैसे पैटर्न का उपयोग करके अन्य टैग शामिल करने के लिए रेगेक्स का विस्तार कर सकते हैं। – Scorpius