Wie kann ich in WordPress-Shortcodes boolesche Attribute übergeben?
Beide von [shortcode boolean_attribute="true"]
oder [shortcode boolean_attribute=true]
geben Zeichenfolgenwerte an.
BEARBEITEN
Es wäre kein Problem für Benutzer, die wissen, was sie tun, wenn ich den von @brasofilo kommentierten Trick verwende. Einige Benutzer gehen jedoch verloren, wenn sie einen Attributwert false
angeben und einen true
Wert erhalten . Gibt es also eine andere Lösung?
shortcode
customization
Sodbileg Gansukh
quelle
quelle
false
sonst habentrue
.Antworten:
Ist einfach zu bedienen
0
und1
Werte und dann Typumwandlung innerhalb der Funktion:[shortcode boolean_attribute='1']
oder[shortcode boolean_attribute='0']
Wenn Sie möchten, können Sie auch streng
'false'
nach Booleschen Werten suchen und diese zuweisen. Auf diese Weise können Sie auch Folgendes verwenden:[shortcode boolean_attribute='false']
oder[shortcode boolean_attribute='true']
Dann:
quelle
extract()
. :)'true'
und'false'
Als Erweiterung zu @GM answer (das ist der einzig mögliche Weg, dies zu tun), hier eine leicht verkürzte / verschönerte und eine erweiterte Version (die ich persönlich bevorzuge):
Verkürzte / Verschönerte Variante
Es reicht aus,
boolean
den enthaltenen Wert zu überprüfen. Wenn jatrue
, ist das Ergebnis(bool) true
, sonst ist es falsch. Dies ergibt einen Einzelfalltrue
, alles anderefalse
ergibt sich.Erweiterte / Benutzersichere Variante
Der Grund, warum ich diese Version bevorzuge, ist, dass der Benutzer sie
on/yes/1
als Alias für eingeben kanntrue
. Dies verringert die Wahrscheinlichkeit von Benutzerfehlern, wenn sich der Benutzer nicht an den tatsächlichen Wert erinnerttrue
.Zusätzliche Bemerkungen:
1) Übergeben Sie immer das 3. Argument für
shortcode_atts()
. Andernfalls kann der Filter für Kurzwahlattribute nicht ausgewählt werden.2) Niemals verwenden
extract()
. Auch Kern will diese Anrufe reduzieren. Dies ist fürglobal
Variablen ebenso schlimmer , da IDEs keine Chance haben, den extrahierten Inhalt aufzulösen, und Fehlermeldungen auslösen.quelle
wp_validate_boolean()
Funktion in WordPress 4.0.0 oder höher ist hilfreich bei der Überprüfung von Booleschen Werten. Funktionsreferenz developer.wordpress.org/reference/functions/wp_validate_booleanfilter_var( $var, FILTER_VALIDATE_BOOLEAN ).
, was selbst der doc-Block dieser Funktion selbst angibt.Hier eine kürzere, einfache Version, die auf der Antwort von gmazzap aufbaut:
Benutze '1' oder '0' und wirke dann mit einem Doppelknall "!!" Das ändert einen "truthy / falsey" -Wert in ein boolesches Äquivalent
Beachten Sie, dass dies NICHT mit "true" und "false" Zeichenfolgen funktioniert, sondern nur mit "1" und "0".
quelle