2011-03-12 22 views
11

मैं थोड़ी देर के लिए इस पर अटक गया हूं। मैं एक वर्डप्रेस साइट पर काम कर रहा हूं जहां मैंने स्क्रैच से थीम लिखी है, मैं कुछ वर्गों में वर्डप्रेस कार्यक्षमता प्राप्त करने के लिए PHP कॉल का उपयोग करता हूं।do_shortcode काम नहीं कर रहा

मैं एक प्लगइन का उपयोग करने के लिए कोशिश कर रहा हूँ, लेकिन

echo do_shortcode('[STORE-LOCATOR]'); 

बस नहीं है काम कर के माध्यम से यह मांग की। यहां तक ​​कि जब मैं डिफ़ॉल्ट टेम्पलेट पर स्विच करता हूं और उस कोड को पोस्ट करता हूं, तब भी यह काम नहीं करता है। यह बस "[STORE-LOCATOR]"

किसी भी मदद की सराहना की जाएगी।

+0

से [डॉक्स] (http://codex.wordpress.org/Function_Reference/do_shortcode): "देखते हैं, तो कोई शोर्ट टैग परिभाषित है, तो सामग्री बिना फ़िल्टरिंग के वापस लौटाया जाएगा। अगर प्लगइन अक्षम हो जाता है तो इससे समस्याएं हो सकती हैं क्योंकि इसका शोर्ट अभी भी पोस्ट या सामग्री में दिखाई देगा। " प्लगइन वास्तव में सक्रिय है? –

+0

क्या 'स्टोर-लोकेटर]' पोस्ट सामग्री में काम करता है? – Dogbert

+0

हां यह दिखाता है। – sjobe

उत्तर

35

[STORE-LOCATOR] शायद वर्डप्रेस अर्थ में 'शोर्ट' नहीं है।

मुझे विभिन्न प्लगइन, स्ट्रीम मीडिया प्लेयर पर इसका सामना करना पड़ा। वे शॉर्टकोड के समान सिंटैक्स का उपयोग करते हैं, लेकिन वे वास्तव में नहीं हैं।

उपयोग करके देखें:

echo apply_filters('the_content',' [STORE-LOCATOR] '); 
बजाय

do_shortcode, और देखो अगर यह मदद करता है।

+7

मैं बस इस सटीक (स्टोर लोकेटर) समस्या में भाग गया और यह सवाल पाया। इस जवाब ने समस्या को ठीक किया और स्वीकार्य उत्तर होना चाहिए। –

+1

यह स्वीकार्य उत्तर कैसे नहीं है? यह काम।मुझे एक ईकॉमर्स प्लगइन के साथ यह मुद्दा था! धन्यवाद! – ProblemsOfSumit

+0

आप, दोस्त, एक उद्धारक हैं! धन्यवाद! – NPC

2

यह स्टोर लोकेटर प्लगइन के लिए विशिष्ट है, सामान्य रूप से do_shortcode नहीं।

apply_filters अन्य प्लगइन के लिए स्वीकार्य कामकाज हो सकता है, लेकिन यह स्टोर लोकेटर के लिए काम नहीं करता है; आप केवल खाली स्थान और कुछ नियंत्रण देखेंगे। ऐसा इसलिए है क्योंकि यह पृष्ठ के शीर्ष पर अपने सभी जेएस संदर्भों को शामिल करना है या नहीं, यह निर्धारित करने के लिए पृष्ठ/पोस्ट बॉडी में उस शोर्ट को ढूंढ रहा है। और इन संदर्भों के बिना, कुछ भी काम नहीं करेगा। Sl-functions.php में sl_head_scripts फ़ंक्शन देखें।

इस व्यवहार को बदलने के लिए, बस उस फ़ंक्शन को पृष्ठ शीर्षक के आधार पर मिलान करने के लिए संशोधित करें। मेरे उदाहरण में मैं इसे केवल एक "दुकान" पृष्ठ पर चाहता था, इसलिए मैं बाहर पूरे $on_sl_page परीक्षण टिप्पणी की है और इस के साथ बदल दिया:

$on_sl_page = (strpos($pagename, 'shop') === 0);

मैं तो apply_filters साथ मेरा पेज से यह कहा जाता है में संकेत के रूप अन्य जवाब:

echo apply_filters('the_content','[STORE-LOCATOR]');

और यह पूरी तरह से काम करने के लिए प्रकट होता है।

13

do_shortcode() एक स्ट्रिंग देता है। यह करने से काम कर मैं हो:

<?php echo do_shortcode(...); ?> 
0
echo do_shortcode('[STORE-LOCATOR][/STORE-LOCATOR]'); 
+0

आपका उत्तर लंबाई की वजह से कम गुणवत्ता के रूप में चिह्नित किया गया था। आगे की गहराई में अपना उत्तर समझाएं। –

संबंधित मुद्दे