En tant qu'extension de la réponse @GM (qui est le seul moyen possible de le faire), voici une version légèrement raccourcie / embellie et une version étendue (que je préfère personnellement):
Variante raccourcie / embellie
Il suffit de booleanvérifier la valeur contenue. Si c'est le cas true, le résultat sera (bool) true, sinon ce sera faux. Cela produit un seul cas true, tout le reste falserésulte.
add_shortcode( 'shortcodeWPSE', 'wpse119294ShortcodeCbA' );
function wpse119294ShortcodeCbA( $atts ) {
$args = shortcode_atts( array(
'boolAttr' => 'true'
), $atts, 'shortcodeWPSE' );
$args['boolAttr'] = 'true' === $args['boolAttr'];
}
Variante étendue / sécurisée pour l'utilisateur
La raison pour laquelle je préfère cette version est qu'elle permet à l'utilisateur de taper on/yes/1un alias pour true. Cela réduit le risque d'erreurs utilisateur lorsque l'utilisateur ne se souvient pas de la valeur réelle 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 );
}
Notes complémentaires:
1) Passez toujours le 3e argument pour shortcode_atts(). Sinon, le filtre des attributs de shortcode est impossible à cibler.
// The var in the filter name refers to the 3rd argument.
apply_filters( "shortcode_atts_{$shortcode}", $out, $pairs, $atts );
2) Ne jamais utiliser extract(). Même le cœur veut réduire ces appels. C'est également pire pour les globalvariables, car les IDE n'ont aucune chance de résoudre le contenu extrait et lancent des messages d'échec.
false, sinontrue.