WP_Customize_Nav_Menu_Setting::sanitize
Sanitize an input.
Note that parent::sanitize() erroneously does wp_unslash() on $value, but we remove that in this override.
Method of the class: WP_Customize_Nav_Menu_Setting{}
Hooks from the method
Returns
Array|false|null. Null if an input isn't valid. False if it is marked for deletion. Otherwise the sanitized value.
Usage
$WP_Customize_Nav_Menu_Setting = new WP_Customize_Nav_Menu_Setting(); $WP_Customize_Nav_Menu_Setting->sanitize( $value );
- $value(array) (required)
- The menu value to sanitize.
Changelog
| Since 4.3.0 | Introduced. |
WP_Customize_Nav_Menu_Setting::sanitize() WP Customize Nav Menu Setting::sanitize code WP 7.0
public function sanitize( $value ) {
// Menu is marked for deletion.
if ( false === $value ) {
return $value;
}
// Invalid.
if ( ! is_array( $value ) ) {
return null;
}
$default = array(
'name' => '',
'description' => '',
'parent' => 0,
'auto_add' => false,
);
$value = array_merge( $default, $value );
$value = wp_array_slice_assoc( $value, array_keys( $default ) );
$value['name'] = trim( esc_html( $value['name'] ) ); // This sanitization code is used in wp-admin/nav-menus.php.
$value['description'] = sanitize_text_field( $value['description'] );
$value['parent'] = max( 0, (int) $value['parent'] );
$value['auto_add'] = ! empty( $value['auto_add'] );
if ( '' === $value['name'] ) {
$value['name'] = _x( '(unnamed)', 'Missing menu name.' );
}
/** This filter is documented in wp-includes/class-wp-customize-setting.php */
return apply_filters( "customize_sanitize_{$this->id}", $value, $this );
}