@GM cevabının bir uzantısı olarak (bunu yapmanın tek olası yolu), burada biraz kısaltılmış / güzelleştirilmiş ve genişletilmiş bir versiyon (kişisel olarak tercih ederim):
Kısaltılmış / Güzelleştirilmiş varyant
booleanİçerilen değer için bir kontrol yapmak yeterlidir . Eğer öyleyse true, sonuç olur (bool) true, yoksa yanlış olur. Bu bir vaka üretir true, her şey falsesonuçlanır.
add_shortcode( 'shortcodeWPSE', 'wpse119294ShortcodeCbA' );
function wpse119294ShortcodeCbA( $atts ) {
$args = shortcode_atts( array(
'boolAttr' => 'true'
), $atts, 'shortcodeWPSE' );
$args['boolAttr'] = 'true' === $args['boolAttr'];
}
Genişletilmiş / Kullanıcı güvenli varyant
Bu sürümü tercih etmemin nedeni, kullanıcının on/yes/1bir takma ad olarak yazmasına izin vermesidir true. Bu, kullanıcı gerçek değerinin ne olduğunu hatırlamadığında kullanıcı hatası olasılığını azaltır 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 );
}
Ek Notlar:
1) Her zaman için 3. argümanını iletin shortcode_atts(). Başka kısa kod öznitelikleri filtresini hedeflemek imkansızdır.
// The var in the filter name refers to the 3rd argument.
apply_filters( "shortcode_atts_{$shortcode}", $out, $pairs, $atts );
2) Asla kullanmayın extract(). Çekirdek bile bu çağrıları azaltmak istiyor. globalIDE'ler çıkarılan içeriği çözme şansına sahip olmadığından ve hata mesajlarını atacağından, değişkenler için aynı derecede daha kötüdür .
false, aksi takdirde sahip olacaksınıztrue.