107 lines
3.4 KiB
PHP
107 lines
3.4 KiB
PHP
<?php
|
|
/**
|
|
* Customizer: Sanitization Callbacks
|
|
*
|
|
* This file demonstrates how to define sanitization callback functions for various data types.
|
|
*
|
|
* @package Chromax
|
|
* @copyright Copyright (c) 2015, WordPress Theme Review Team
|
|
* @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU General Public License, v2 (or newer)
|
|
*/
|
|
|
|
/**
|
|
* Checkbox sanitization callback example.
|
|
*
|
|
* Sanitization callback for 'checkbox' type controls. This callback sanitizes `$checked`
|
|
* as a boolean value, either TRUE or FALSE.
|
|
*
|
|
* @param bool $checked Whether the checkbox is checked.
|
|
* @return bool Whether the checkbox is checked.
|
|
*/
|
|
function chromax_sanitize_checkbox( $checked ) {
|
|
// Boolean check.
|
|
return ( ( isset( $checked ) && true == $checked ) ? true : false );
|
|
}
|
|
|
|
/**
|
|
* HTML sanitization callback example.
|
|
*
|
|
* - Sanitization: html
|
|
* - Control: text, textarea
|
|
*
|
|
* Sanitization callback for 'html' type text inputs. This callback sanitizes `$html`
|
|
* for HTML allowable in posts.
|
|
*
|
|
* NOTE: wp_filter_post_kses() can be passed directly as `$wp_customize->add_setting()`
|
|
* 'sanitize_callback'. It is wrapped in a callback here merely for example purposes.
|
|
*
|
|
* @see wp_filter_post_kses() https://developer.wordpress.org/reference/functions/wp_filter_post_kses/
|
|
*
|
|
* @param string $html HTML to sanitize.
|
|
* @return string Sanitized HTML.
|
|
*/
|
|
function chromax_sanitize_html( $html ) {
|
|
return wp_kses_post( force_balance_tags( $html ) );
|
|
}
|
|
|
|
|
|
/**
|
|
* Select sanitization callback example.
|
|
*
|
|
* - Sanitization: select
|
|
* - Control: select, radio
|
|
*
|
|
* Sanitization callback for 'select' and 'radio' type controls. This callback sanitizes `$input`
|
|
* as a slug, and then validates `$input` against the choices defined for the control.
|
|
*
|
|
* @see sanitize_key() https://developer.wordpress.org/reference/functions/sanitize_key/
|
|
* @see $wp_customize->get_control() https://developer.wordpress.org/reference/classes/wp_customize_manager/get_control/
|
|
*
|
|
* @param string $input Slug to sanitize.
|
|
* @param WP_Customize_Setting $setting Setting instance.
|
|
* @return string Sanitized slug if it is a valid choice; otherwise, the setting default.
|
|
*/
|
|
function chromax_sanitize_select( $input, $setting ) {
|
|
|
|
// Ensure input is a slug.
|
|
$input = sanitize_key( $input );
|
|
|
|
// Get list of choices from the control associated with the setting.
|
|
$choices = $setting->manager->get_control( $setting->id )->choices;
|
|
|
|
// If the input is a valid key, return it; otherwise, return the default.
|
|
return ( array_key_exists( $input, $choices ) ? $input : $setting->default );
|
|
}
|
|
|
|
/**
|
|
* URL sanitization callback example.
|
|
*
|
|
* - Sanitization: url
|
|
* - Control: text, url
|
|
*
|
|
* Sanitization callback for 'url' type text inputs. This callback sanitizes `$url` as a valid URL.
|
|
*
|
|
* NOTE: esc_url_raw() can be passed directly as `$wp_customize->add_setting()` 'sanitize_callback'.
|
|
* It is wrapped in a callback here merely for example purposes.
|
|
*
|
|
* @see esc_url_raw() https://developer.wordpress.org/reference/functions/esc_url_raw/
|
|
*
|
|
* @param string $url URL to sanitize.
|
|
* @return string Sanitized URL.
|
|
*/
|
|
function chromax_sanitize_url( $url ) {
|
|
return esc_url_raw( $url );
|
|
}
|
|
|
|
|
|
/* Sanitization Text*/
|
|
function chromax_sanitize_text( $text ) {
|
|
return wp_filter_post_kses( $text );
|
|
}
|
|
|
|
/* Sanitization Integer*/
|
|
function chromax_sanitize_integer( $input ) {
|
|
if( is_numeric( $input ) ) {
|
|
return intval( $input );
|
|
}
|
|
} |