From f6e7db51cfe57bcd17a3935518a62a782e05888f Mon Sep 17 00:00:00 2001 From: Brian Miyaji Date: Fri, 5 Nov 2021 17:33:51 +0900 Subject: [PATCH] Add sanitize parameter to sp_array_value --- includes/sp-core-functions.php | 40 ++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/includes/sp-core-functions.php b/includes/sp-core-functions.php index 7a665baa..8a96c042 100644 --- a/includes/sp-core-functions.php +++ b/includes/sp-core-functions.php @@ -306,8 +306,44 @@ if ( !function_exists( 'sp_array_between' ) ) { } if ( !function_exists( 'sp_array_value' ) ) { - function sp_array_value( $arr = array(), $key = 0, $default = null ) { - return ( isset( $arr[ $key ] ) ? $arr[ $key ] : $default ); + function sp_array_value( $arr = array(), $key = 0, $default = null, $sanitize = false ) { + $value = ( isset( $arr[ $key ] ) ? $arr[ $key ] : $default ); + + if ( $sanitize ): + if ( is_array( $value ) ): + switch ( $sanitize ): + case 'int': + $value = array_map( 'intval', $value ); + break; + case 'title': + $value = array_map( 'sanitize_title', $value ); + break; + case 'text': + $value = array_map( 'sanitize_text', $value ); + break; + case 'key': + $value = array_map( 'sanitize_key', $value ); + break; + endswitch; + else: + switch ( $sanitize ): + case 'int': + $value = intval( $value ); + break; + case 'title': + $value = sanitize_title( $value ); + break; + case 'text': + $value = sanitize_text( $value ); + break; + case 'key': + $value = sanitize_key( $value ); + break; + endswitch; + endif; + endif; + + return $value; } }