एक प्लगइन वर्ग में मैं सार्वजनिक डेटा के लिए सरल क्षेत्र प्रदान करना चाहता हूं: ईमेल, फोन नंबर, ट्विटर आदि। सूची को बढ़ाया जा सकता है।
देखें प्लगइन लोक संपर्क डेटा जानकारी के लिए GitHub पर।
उपयोग को सरल रखने के लिए, मैं उन शॉर्टकोड की भी पेशकश करना चाहता हूं जो टाइप करने में आसान हैं:
[public_email]
[public_phone]
[public_something]
एकमात्र अंतर दूसरा भाग है। मैं शॉर्टकोड के लिए और तर्क नहीं चाहता क्योंकि वे त्रुटि प्रवण हैं। इसलिए मैं अपने प्लगइन वर्ग में सभी क्षेत्रों के लिए एक शोर्ट हैंडलर पंजीकृत करता हूं:
foreach ( $this->fields as $key => $value )
{
add_shortcode( 'public_' . $key, array( $this, 'shortcode_handler' ) );
}
अब shortcode_handler()
जानना होगा कि किस शोर्ट को कहा गया है। मेरा सवाल है: मैं यह कैसे करूँ?
मेरा वर्तमान समाधान एक और कार्य है:
protected function current_shortcode()
{
$backtrace = debug_backtrace( DEBUG_BACKTRACE_IGNORE_ARGS );
return $backtrace[3]['args'][0][2];
}
यह… के लिए काम करता है the_content()
। लेकिन यह न तो सुरुचिपूर्ण है और न ही मजबूत।
मैंने पढ़ा है wp-includes/shortcodes.php
, लेकिन मैं अभी नहीं देख सकता कि इसे बेहतर कैसे किया जाए।