Because PHP can be configured without `--filter`, it is not 100% safe to use `filter_var()`. This is problematic for casting `"false"` to `false`, as PHP always casts it to `true`. `FILTER_VALIDATE_BOOLEAN` fixes this, but it may not be available.
Add a new function, `wp_validate_boolean()`, to replace `filter_var( $var, FILTER_VALIDATE_BOOLEAN )`. Fixes #28170. Built from https://develop.svn.wordpress.org/trunk@28542 git-svn-id: http://core.svn.wordpress.org/trunk@28368 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
333083debe
commit
e4bc49c244
|
@ -4445,3 +4445,23 @@ function mbstring_binary_safe_encoding( $reset = false ) {
|
||||||
function reset_mbstring_encoding() {
|
function reset_mbstring_encoding() {
|
||||||
mbstring_binary_safe_encoding( true );
|
mbstring_binary_safe_encoding( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Alternative to filter_var( $var, FILTER_VALIDATE_BOOLEAN )
|
||||||
|
*
|
||||||
|
* @since 4.0.0
|
||||||
|
*
|
||||||
|
* @param mixed $var
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
function wp_validate_boolean( $var ) {
|
||||||
|
if ( is_bool( $var ) ) {
|
||||||
|
return $var;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( 'false' === $var ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (bool) $var;
|
||||||
|
}
|
|
@ -1272,10 +1272,10 @@ function wp_playlist_shortcode( $attr ) {
|
||||||
$data = array(
|
$data = array(
|
||||||
'type' => $atts['type'],
|
'type' => $atts['type'],
|
||||||
// don't pass strings to JSON, will be truthy in JS
|
// don't pass strings to JSON, will be truthy in JS
|
||||||
'tracklist' => filter_var( $atts['tracklist'], FILTER_VALIDATE_BOOLEAN ),
|
'tracklist' => wp_validate_boolean( $atts['tracklist'] ),
|
||||||
'tracknumbers' => filter_var( $atts['tracknumbers'], FILTER_VALIDATE_BOOLEAN ),
|
'tracknumbers' => wp_validate_boolean( $atts['tracknumbers'] ),
|
||||||
'images' => filter_var( $atts['images'], FILTER_VALIDATE_BOOLEAN ),
|
'images' => wp_validate_boolean( $atts['images'] ),
|
||||||
'artists' => filter_var( $atts['artists'], FILTER_VALIDATE_BOOLEAN ),
|
'artists' => wp_validate_boolean( $atts['artists'] ),
|
||||||
);
|
);
|
||||||
|
|
||||||
$tracks = array();
|
$tracks = array();
|
||||||
|
|
Loading…
Reference in New Issue