@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।