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 ja true
, ist das Ergebnis (bool) true
, sonst ist es falsch. Dies ergibt einen Einzelfall true
, alles andere false
ergibt sich.
add_shortcode( 'shortcodeWPSE', 'wpse119294ShortcodeCbA' );
function wpse119294ShortcodeCbA( $atts ) {
$args = shortcode_atts( array(
'boolAttr' => 'true'
), $atts, 'shortcodeWPSE' );
$args['boolAttr'] = 'true' === $args['boolAttr'];
}
Erweiterte / Benutzersichere Variante
Der Grund, warum ich diese Version bevorzuge, ist, dass der Benutzer sie on/yes/1
als Alias für eingeben kann true
. Dies verringert die Wahrscheinlichkeit von Benutzerfehlern, wenn sich der Benutzer nicht an den tatsächlichen Wert erinnert true
.
add_shortcode( 'shortcodeWPSE', 'wpse119294ShortcodeCbA' );
function wpse119294ShortcodeCbA( $atts ) {
$args = shortcode_atts( array(
'boolAttr' => 'true'
), $atts, 'shortcodeWPSE' );
$args['boolAttr'] = filter_var( $args['boolAttr'], FILTER_VALIDATE_BOOLEAN );
}
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.
// The var in the filter name refers to the 3rd argument.
apply_filters( "shortcode_atts_{$shortcode}", $out, $pairs, $atts );
2) Niemals verwenden extract()
. Auch Kern will diese Anrufe reduzieren. Dies ist für global
Variablen ebenso schlimmer , da IDEs keine Chance haben, den extrahierten Inhalt aufzulösen, und Fehlermeldungen auslösen.
false
sonst habentrue
.