W jaki sposób mogę przekazywać atrybuty logiczne w skrótach WordPress?
Obie [shortcode boolean_attribute="true"]
lub [shortcode boolean_attribute=true]
podają wartości ciągu.
EDYTOWAĆ
Użytkownicy korzystający ze sztuczki skomentowanej przez @brasofilo nie mieliby problemu. Ale niektórzy użytkownicy zgubią się, jeśli podadzą false
wartość atrybutu i otrzymają true
wartość. Czy jest jakieś inne rozwiązanie?
shortcode
customization
Sodbileg Gansukh
źródło
źródło
false
, w przeciwnym razietrue
.Odpowiedzi:
Jest łatwy w użyciu
0
i1
wartości, a następnie rzutowanie tekstu wewnątrz funkcji:[shortcode boolean_attribute='1']
lub[shortcode boolean_attribute='0']
ale jeśli chcesz, możesz również ściśle sprawdzić
'false'
i przypisać go do wartości logicznej, w ten sposób możesz również użyć:[shortcode boolean_attribute='false']
lub[shortcode boolean_attribute='true']
Następnie:
źródło
extract()
. :)'true'
i'false'
Jako rozszerzenie odpowiedzi @GM (która jest jedynym możliwym sposobem na zrobienie tego), oto nieco skrócona / upiększona i rozszerzona wersja (którą osobiście wolę):
Skrócony / Upiększony wariant
Wystarczy
boolean
sprawdzić zawartą wartość. Jeśli taktrue
, wynik będzie(bool) true
, w przeciwnym razie będzie fałszywy. Daje to jeden przypadektrue
, wszystko innefalse
skutkuje.Wariant rozszerzony / bezpieczny dla użytkownika
Powodem, dla którego wolę tę wersję, jest to, że pozwala ona wpisać się
on/yes/1
jako aliastrue
. Zmniejsza to ryzyko błędów użytkownika, gdy użytkownik nie pamięta, jaka była rzeczywista wartośćtrue
.Dodatkowe uwagi:
1) Zawsze przekazuj trzeci argument za
shortcode_atts()
. W przeciwnym razie filtr atrybutów krótkiego kodu nie może być celem.2) Nigdy nie używaj
extract()
. Nawet rdzeń chce ograniczyć te połączenia. Gorzej jest zeglobal
zmiennymi, ponieważ IDE nie mają szansy na rozwiązanie wyodrębnionej zawartości i wyrzucą komunikaty o niepowodzeniach.źródło
wp_validate_boolean()
funkcja w WordPress 4.0.0 lub nowszym jest pomocna w sprawdzaniu poprawności wartości logicznych. Opis funkcji developer.wordpress.org/reference/functions/wp_validate_booleanfilter_var( $var, FILTER_VALIDATE_BOOLEAN ).
tego, co stwierdza nawet sam docblock tej funkcji.Oto krótsza prosta wersja oparta na odpowiedzi gmazzap:
Użyj „1” lub „0”, a następnie użyj podwójnego uderzenia „!!” co zmienia wartość „prawda / falsey” na wartość logiczną
zauważ, że to NIE będzie działać z ciągami „prawda” i „fałsz”, tylko „1” i „0”
źródło