WP_Customize_Nav_Menu_Setting::sanitize()publicWP 4.3.0

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

Return

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() code WP 6.5.2

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 );
}