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 boolean
vé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 false
ré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/1
un 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 global
variables, car les IDE n'ont aucune chance de résoudre le contenu extrait et lancent des messages d'échec.
false
, sinontrue
.