Dans les shortcodes WordPress, comment puis-je transmettre des attributs booléens?
Les deux [shortcode boolean_attribute="true"]
ou [shortcode boolean_attribute=true]
donnent des valeurs de chaîne.
ÉDITER
Il n'y aurait aucun problème pour les utilisateurs qui savent ce qu'ils font si j'utilise l'astuce qui a été commentée par @brasofilo. Mais certains utilisateurs se perdront s'ils donnent une false
valeur d' attribut et reçoiventtrue
. Y a-t-il donc une autre solution?
shortcode
customization
Sodbileg Gansukh
la source
la source
false
, sinontrue
.Réponses:
Est facile à utiliser
0
et1
valoriser, puis à transtyper dans la fonction:[shortcode boolean_attribute='1']
ou[shortcode boolean_attribute='0']
mais si vous voulez, vous pouvez également vérifier strictement
'false'
et l'affecter à booléen, de cette façon, vous pouvez également utiliser:[shortcode boolean_attribute='false']
ou[shortcode boolean_attribute='true']
Alors:
la source
extract()
. :)'true'
et'false'
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 castrue
, le résultat sera(bool) true
, sinon ce sera faux. Cela produit un seul castrue
, tout le restefalse
résulte.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 pourtrue
. Cela réduit le risque d'erreurs utilisateur lorsque l'utilisateur ne se souvient pas de la valeur réelletrue
.Notes complémentaires:
1) Passez toujours le 3e argument pour
shortcode_atts()
. Sinon, le filtre des attributs de shortcode est impossible à cibler.2) Ne jamais utiliser
extract()
. Même le cœur veut réduire ces appels. C'est également pire pour lesglobal
variables, car les IDE n'ont aucune chance de résoudre le contenu extrait et lancent des messages d'échec.la source
wp_validate_boolean()
dans WordPress 4.0.0 ou supérieur est utile pour valider les valeurs booléennes. Référence des fonctions developer.wordpress.org/reference/functions/wp_validate_booleanfilter_var( $var, FILTER_VALIDATE_BOOLEAN ).
ce que même le docblock de cette fonction déclare.Voici une version simple plus courte, s'appuyant sur la réponse de gmazzap:
Utilisez '1' ou '0', puis lancez en utilisant un double coup "!!" qui change une valeur "truey / falsey" en son équivalent booléen
notez que cela ne fonctionnera PAS avec les chaînes "true" et "false", seulement "1" et "0"
la source