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, booleanden enthaltenen Wert zu überprüfen. Wenn ja true, ist das Ergebnis (bool) true, sonst ist es falsch. Dies ergibt einen Einzelfall true, alles andere falseergibt 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/1als 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 globalVariablen ebenso schlimmer , da IDEs keine Chance haben, den extrahierten Inhalt aufzulösen, und Fehlermeldungen auslösen.
falsesonst habentrue.