Nos códigos de acesso do WordPress, como posso transmitir atributos booleanos?
Ambos [shortcode boolean_attribute="true"]
ou [shortcode boolean_attribute=true]
estão fornecendo valores de sequência.
EDITAR
Não haveria problema para os usuários que sabem o que estão fazendo se eu usar o truque comentado por @brasofilo. Mas alguns usuários se perderão se atribuírem um false
valor de atributo e receberem true
valor. Então, existe alguma outra solução?
shortcode
customization
Sodbileg Gansukh
fonte
fonte
false
, caso contráriotrue
.Respostas:
É fácil de usar
0
e1
valores e, em seguida, faz a conversão dentro da função:[shortcode boolean_attribute='1']
ou[shortcode boolean_attribute='0']
mas se você quiser, também pode verificar
'false'
e atribuir rigorosamente a booleano; dessa maneira, você também pode usar:[shortcode boolean_attribute='false']
ou[shortcode boolean_attribute='true']
Então:
fonte
extract()
. :)'true'
e'false'
Como uma extensão da resposta do @GM (que é a única maneira possível de fazer isso), aqui está uma versão um pouco abreviada / embelezada e uma versão estendida (que eu pessoalmente prefiro):
Variante encurtada / embelezada
Basta
boolean
verificar o valor contido. Se fortrue
, o resultado será(bool) true
, caso contrário, será falso. Isso produz um casotrue
, tudo o maisfalse
resulta.Variante estendida / segura para o usuário
A razão pela qual prefiro esta versão é que ela permite ao usuário digitar
on/yes/1
como um alias paratrue
. Isso reduz a chance de erros do usuário quando o usuário não se lembra qual era o valor realtrue
.Notas Adicionais:
1) Sempre passe o terceiro argumento para
shortcode_atts()
. Caso contrário, o filtro de atributos de código curto é impossível de segmentar.2) Nunca use
extract()
. Até o núcleo quer reduzir essas ligações. É igualmente pior para asglobal
variáveis, pois os IDEs não têm chance de resolver o conteúdo extraído e lançam mensagens de falha.fonte
wp_validate_boolean()
A função no WordPress 4.0.0 ou superior é útil na validação de valores booleanos. Referência de função developer.wordpress.org/reference/functions/wp_validate_booleanfilter_var( $var, FILTER_VALIDATE_BOOLEAN ).
que afirma o próprio bloco de documentos dessa função.Aqui está uma versão simples mais curta, baseada na resposta do gmazzap:
Use '1' ou '0' e, em seguida, faça o lançamento usando um toque duplo "!!" que altera um valor "truthy / falsey" para seu equivalente booleano
note que isso NÃO funcionará com cadeias "verdadeiras" e "falsas", apenas "1" e "0"
fonte