En los códigos cortos de WordPress, ¿cómo puedo pasar atributos booleanos?
Ambos [shortcode boolean_attribute="true"]
o [shortcode boolean_attribute=true]
están dando valores de cadena.
EDITAR
No habría ningún problema para los usuarios que saben lo que están haciendo si uso el truco que fue comentado por @brasofilo. Pero algunos usuarios se perderán si otorgan un false
valor de atributo y reciben true
valor. Entonces, ¿hay alguna otra solución?
shortcode
customization
Sodbileg Gansukh
fuente
fuente
false
, de lo contrariotrue
.Respuestas:
Es fácil de usar
0
y1
valora y luego encasilla dentro de la función:[shortcode boolean_attribute='1']
o[shortcode boolean_attribute='0']
pero si lo desea, también puede verificarlo estrictamente
'false'
y asignarlo a booleano, de esta manera también puede usar:[shortcode boolean_attribute='false']
o[shortcode boolean_attribute='true']
Luego:
fuente
extract()
. :)'true'
y'false'
Como extensión de la respuesta @GM (que es la única forma posible de hacer esto), aquí hay una versión ligeramente acortada / embellecida y una versión extendida (que personalmente prefiero):
Variante acortada / embellecida
Es suficiente hacer una
boolean
verificación del valor contenido. Si es asítrue
, el resultado será(bool) true
, de lo contrario será falso. Esto produce un caso únicotrue
, todo lo demásfalse
resulta.Variante extendida / segura para el usuario
La razón por la que prefiero esta versión es que permite al usuario escribir
on/yes/1
como un alias paratrue
. Esto reduce la posibilidad de errores del usuario cuando el usuario no recuerda cuál era el valor realtrue
.Notas adicionales:
1) Pase siempre el tercer argumento para
shortcode_atts()
. De lo contrario, el filtro de atributos de código corto es imposible de identificar.2) Nunca lo use
extract()
. Incluso el núcleo quiere reducir esas llamadas. Es igualmente peor para lasglobal
variables, ya que los IDE no tienen la oportunidad de resolver el contenido extraído y arrojarán mensajes de falla.fuente
wp_validate_boolean()
La función en WordPress 4.0.0 o superior es útil para validar valores booleanos. Referencia de funciones developer.wordpress.org/reference/functions/wp_validate_booleanfilter_var( $var, FILTER_VALIDATE_BOOLEAN ).
lo que incluso el docblock de esta función en sí dice.Aquí una versión simple más corta, basada en la respuesta de gmazzap:
Use '1' o '0', luego eche un doble golpe "!!" que cambia un valor de "veracidad / falsey" a su equivalente booleano
tenga en cuenta que esto NO funcionará con cadenas "verdaderas" y "falsas", solo "1" y "0"
fuente