@GM 답변의 확장 (이것이 가능한 유일한 방법 임)으로 약간 단축 / 미화 된 확장 버전 (개인적으로 선호하는)이 있습니다.
단축 / 미화 변형
boolean
포함 된 값을 확인하는 것으로 충분 합니다. 인 경우 true
결과는입니다 (bool) true
. 그렇지 않으면 거짓입니다. 이것은 하나의 경우를 생성하고 true
다른 모든 false
결과는 발생합니다.
add_shortcode( 'shortcodeWPSE', 'wpse119294ShortcodeCbA' );
function wpse119294ShortcodeCbA( $atts ) {
$args = shortcode_atts( array(
'boolAttr' => 'true'
), $atts, 'shortcodeWPSE' );
$args['boolAttr'] = 'true' === $args['boolAttr'];
}
확장 / 사용자 안전 변형
이 버전을 선호하는 이유는 사용자가에 on/yes/1
대한 별칭 으로 입력 할 수 있기 때문 입니다 true
. 이렇게하면 사용자가 실제 값을 기억하지 못하는 경우 사용자 오류가 발생할 가능성이 줄어 듭니다 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 );
}
추가 사항 :
1)의 세 번째 인수를 항상 전달하십시오 shortcode_atts()
. 그렇지 않으면 단축 코드 속성 필터를 타겟팅 할 수 없습니다.
// The var in the filter name refers to the 3rd argument.
apply_filters( "shortcode_atts_{$shortcode}", $out, $pairs, $atts );
2) 절대 사용하지 마십시오 extract()
. 핵심조차도 그러한 전화를 줄이기를 원합니다. global
IDE는 추출 된 내용을 해결할 수있는 기회를 가지지 않고 실패 메시지를 던지기 때문에 변수에 대해서도 더 나쁩니다 .
false
, 그렇지 않으면true
.