@GM उत्तर के विस्तार के रूप में (जो कि ऐसा करने का एकमात्र संभव तरीका है), यहां थोड़ा छोटा / सुशोभित और एक विस्तारित संस्करण (जिसे मैं व्यक्तिगत रूप से पसंद करता हूं):
छोटा / सुशोभित संस्करण
यह boolean
निहित मूल्य के लिए एक जांच करने के लिए पर्याप्त है । यदि यह है true
, तो परिणाम होगा (bool) true
, अन्यथा यह गलत होगा। यह एक मामला पैदा करता है true
, बाकी सब कुछ false
परिणाम।
add_shortcode( 'shortcodeWPSE', 'wpse119294ShortcodeCbA' );
function wpse119294ShortcodeCbA( $atts ) {
$args = shortcode_atts( array(
'boolAttr' => 'true'
), $atts, 'shortcodeWPSE' );
$args['boolAttr'] = 'true' === $args['boolAttr'];
}
विस्तारित / उपयोगकर्ता-सुरक्षित संस्करण
इस संस्करण को पसंद करने का कारण यह है कि यह उपयोगकर्ता को on/yes/1
एक उपनाम के रूप में टाइप करने की अनुमति देता है true
। यह उपयोगकर्ता की त्रुटियों के लिए मौका कम कर देता है जब उपयोगकर्ता को यह याद नहीं रहता है कि वास्तविक मूल्य क्या true
था।
add_shortcode( 'shortcodeWPSE', 'wpse119294ShortcodeCbA' );
function wpse119294ShortcodeCbA( $atts ) {
$args = shortcode_atts( array(
'boolAttr' => 'true'
), $atts, 'shortcodeWPSE' );
$args['boolAttr'] = filter_var( $args['boolAttr'], FILTER_VALIDATE_BOOLEAN );
}
अतिरिक्त नोट्स:
1) हमेशा के लिए 3 तर्क पास करें shortcode_atts()
। शोर्ट विशेषताओं को फ़िल्टर करने के लिए लक्ष्य बनाना असंभव है।
// The var in the filter name refers to the 3rd argument.
apply_filters( "shortcode_atts_{$shortcode}", $out, $pairs, $atts );
2) कभी उपयोग न करें extract()
। यहां तक कि कोर उन कॉल्स को कम करना चाहता है। यह global
चर के लिए उतना ही बुरा है , क्योंकि आईडीई निकाले गए सामग्रियों को हल करने का मौका नहीं देता है और विफलता संदेश फेंक देगा।
false
अन्यथा होगाtrue
।