@ জিএম উত্তরের সম্প্রসারণ হিসাবে (এটি করার একমাত্র সম্ভাব্য উপায়), এখানে কিছুটা সংক্ষিপ্ত / সজ্জিত এবং প্রসারিত সংস্করণ (যা আমি ব্যক্তিগতভাবে পছন্দ করি):
সংক্ষিপ্ত / বিউটিফায়ার্ড বৈকল্পিক
এতে 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) সর্বদা জন্য তৃতীয় যুক্তি পাস 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
।