Sebagai ekstensi untuk jawaban @GM (yang merupakan satu-satunya cara yang mungkin untuk melakukan ini), inilah versi yang sedikit disingkat / dipercantik dan dan diperpanjang (yang secara pribadi saya sukai):
Varian yang dipersingkat / Dipercantik
Cukup dengan booleanmemeriksa nilai yang terkandung. Jika ya true, hasilnya akan (bool) true, kalau tidak akan salah. Ini menghasilkan satu kasus true, semua falsehasil lainnya .
add_shortcode( 'shortcodeWPSE', 'wpse119294ShortcodeCbA' );
function wpse119294ShortcodeCbA( $atts ) {
$args = shortcode_atts( array(
'boolAttr' => 'true'
), $atts, 'shortcodeWPSE' );
$args['boolAttr'] = 'true' === $args['boolAttr'];
}
Varian Diperpanjang / Aman bagi pengguna
Alasan mengapa saya lebih suka versi ini adalah karena ini memungkinkan pengguna untuk mengetik on/yes/1sebagai alias untuk true. Ini mengurangi kemungkinan kesalahan pengguna ketika pengguna tidak ingat apa nilai sebenarnya untuk trueitu.
add_shortcode( 'shortcodeWPSE', 'wpse119294ShortcodeCbA' );
function wpse119294ShortcodeCbA( $atts ) {
$args = shortcode_atts( array(
'boolAttr' => 'true'
), $atts, 'shortcodeWPSE' );
$args['boolAttr'] = filter_var( $args['boolAttr'], FILTER_VALIDATE_BOOLEAN );
}
Catatan tambahan:
1) Selalu berikan argumen ke-3 untuk shortcode_atts(). Jika tidak, filter atribut shortcode tidak dapat ditargetkan.
// The var in the filter name refers to the 3rd argument.
apply_filters( "shortcode_atts_{$shortcode}", $out, $pairs, $atts );
2) Jangan pernah gunakan extract(). Bahkan inti ingin mengurangi panggilan itu. Ini sama buruknya dengan globalvariabel, karena IDE tidak memiliki kesempatan untuk menyelesaikan konten yang diekstraksi dan akan melempar pesan kegagalan.
false, jika tidaktrue.