do_shortcode () एडमिन पेज के भीतर


14

मैं कुछ प्लगइन्स का उपयोग कर रहा हूं जिनमें शॉर्टकोड हैं ... हालांकि, सामग्री के लिए एक सार्वजनिक पृष्ठ बनाने के बजाय, मैंने उपयोग करते हुए व्यवस्थापक के भीतर कुछ नए पृष्ठ बनाए हैं add_menu_pageऔर मुझे यह जानना होगा कि do_shortcode()इस संदर्भ में कैसे उपयोग किया जाए ।

जैसा कि यह खड़ा है, सभी फ़ंक्शन इसे स्ट्रिंग से बाहर थूकते हैं। मैं यह मान रहा हूँ क्योंकि शोर्ट एपीआई एक व्यवस्थापक पृष्ठ के भीतर उपलब्ध नहीं है।

मैं इसके आसपास कैसे पहुंचू? कोई दस्तावेज नहीं है जो मुझे पता चले कि यह बताता है कि WP एडमिन के भीतर शॉर्टकोड का उपयोग कैसे किया जाए ... या यदि यह संभव भी है।


विशेष रूप से मैं WP व्यवस्थापक के भीतर WooCommerce शॉर्टकोड का उपयोग करने की कोशिश कर रहा हूं। मुझे इस तथ्य से नफरत है कि प्लग इन खाता / उपयोगकर्ता प्रबंधन के लिए WP बैकेंड का उपयोग नहीं करते हैं।


जिसके साथ आया और उसने निर्णय लिया कि "मैंने कोई शोध नहीं किया" और मुझे बिना टिप्पणी के एक नकारात्मक अंक दिया, वह बहुत ही अनपेक्षित है।
dcolumbus

1
मुझे लगता है कि आप कह सकते हैं कि शॉर्टकोड फ्रंट एंड कंटेंट के लिए हैं ... क्या आप अपने स्वयं के प्लगइन एडमिन पेज के लिए सामग्री उत्पन्न करने के लिए किसी अन्य प्लगइन का उपयोग करने की कोशिश कर रहे हैं?
डेमियन

@ कोलकोम्बस आई कॉनक्योर। मैंने हाल ही में कुछ चंचल चढ़ाव देखे हैं, निश्चित रूप से अतीत में देखने की तुलना में मुझे अधिक याद है। IMO यह एक ईमानदार (और बहुत बढ़िया) सवाल है, इसलिए मैं वर्तमान में एक जवाब में एक चाकू ले जा रहा हूँ;)
TheDeadMedic

यदि आपने एक व्यवस्थापक पृष्ठ बनाया है तो आप आउटपुट को निर्दिष्ट कर सकते हैं - आपको आवश्यकता क्यों है / उपयोग करना चाहते हैं do_shortcode()। क्या आप एक उदाहरण प्रदान कर सकते हैं?
स्टीफन हैरिस

विशेष रूप से मैं WooCommerce शॉर्टकोड का उपयोग करने की कोशिश कर रहा हूं। उपयोगकर्ता प्रबंधन और खाता प्रबंधन पृष्ठ।
dcolumbus

जवाबों:


10

do_shortcode()कॉल करने के बजाय केवल शोर्ट से जुड़े फ़ंक्शन को कॉल करें।

उदाहरण

एक शोर्ट नाम है [example]और शोर्ट हैंडलर के रूप में पंजीकृत एक फ़ंक्शन है:

function example_shortcode( $atts = array(), $content = '' )
{
    extract( 
            shortcode_atts( 
            array (
            'before' => '',
            'after' => '',
            ), 
            $atts 
       )
   );

    return $before . $content . $after;
}
add_shortcode( 'example', 'example_shortcode' );

अपने व्यवस्थापक पृष्ठ में आप केवल फ़ंक्शन को कॉल करते हैं:

echo example_shortcode( 
    array ( 'before' => 'This ', 'after' => '!' ), 
    'works' 
);

आउटपुट: This works!

तेजी से और अधिक विश्वसनीय do_shortcode()


1
मैंने ऐसा सोचा भी नहीं था! तब फिर से, मैंने कभी भी एडमिन में शॉर्टकोड का इस्तेमाल नहीं किया (जो भी कारण हो) और जांच का बहाना था;)
TheDeadMedic

मुझे नहीं पता कि मैंने इस बारे में क्यों नहीं सोचा है ... मैं इसे एक कोशिश और वापस रिपोर्ट देने जा रहा हूं!
dcolumbus

इसका एक नकारात्मक पहलू यह है कि यदि भविष्य में प्लगइन लेखक शोर्ट के कॉलबैक फ़ंक्शन को रिफलेक्ट करता है तो यह टूट जाएगा। शोर्टकोड में परिवर्तन संभवत: बैकवर्ड-संगत होगा, लेकिन यह संभावना कम है कि प्लगइन का आंतरिक फ़ंक्शन नाम होगा।
इयान डन

2

ऐसा लगता है शोर्ट एपीआई है व्यवस्थापक में उपलब्ध है, लेकिन इसके उत्पादन सवाल में शोर्ट टैग पर निर्भर करेगा।

अंतर्निहित [caption]कार्य अपेक्षानुसार, जबकि [embed]यह नहीं है (यह एम्बेड एपीआई "आलसी-लोड" के कारण यह शोर्ट है, और the_contentचलाने के लिए फ़िल्टर पर निर्भर करता है , इसलिए तकनीकी रूप से शोर्ट एपीआई की गलती नहीं है)।

निष्कर्ष: यह पूरी तरह से निर्भर है कि टैग कब और कैसे पंजीकृत होता है, और इसे निष्पादित करने पर क्या होता है / क्या मानता है।

@dcolumbus हम आपके मामले में किस टैग के बारे में बात कर रहे हैं?


1
साथ ही, कुछ टैग get_the_ID()पोस्ट आईडी वापस करने की उम्मीद करेंगे ।
स्टीफन हैरिस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.