On this page
WP_Widget_Text::update( array $new_instance, array $old_instance ): array
Handles updating settings for the current Text widget instance.
Parameters
$new_instancearray Required-
New settings for this instance as input by the user via WP_Widget::form().
$old_instancearray Required-
Old settings for this instance.
Return
array Settings to save or bool false to cancel saving.
Source
File: wp-includes/widgets/class-wp-widget-text.php. View all references
public function update( $new_instance, $old_instance ) {
$new_instance = wp_parse_args(
$new_instance,
array(
'title' => '',
'text' => '',
'filter' => false, // For back-compat.
'visual' => null, // Must be explicitly defined.
)
);
$instance = $old_instance;
$instance['title'] = sanitize_text_field( $new_instance['title'] );
if ( current_user_can( 'unfiltered_html' ) ) {
$instance['text'] = $new_instance['text'];
} else {
$instance['text'] = wp_kses_post( $new_instance['text'] );
}
$instance['filter'] = ! empty( $new_instance['filter'] );
// Upgrade 4.8.0 format.
if ( isset( $old_instance['filter'] ) && 'content' === $old_instance['filter'] ) {
$instance['visual'] = true;
}
if ( 'content' === $new_instance['filter'] ) {
$instance['visual'] = true;
}
if ( isset( $new_instance['visual'] ) ) {
$instance['visual'] = ! empty( $new_instance['visual'] );
}
// Filter is always true in visual mode.
if ( ! empty( $instance['visual'] ) ) {
$instance['filter'] = true;
}
return $instance;
}
Related
Uses
| Uses | Description |
|---|---|
| wp_kses_post() wp-includes/kses.php | Sanitizes content for allowed HTML tags for post content. |
| sanitize_text_field() wp-includes/formatting.php | Sanitizes a string from user input or from the database. |
| current_user_can() wp-includes/capabilities.php | Returns whether the current user has the specified capability. |
| wp_parse_args() wp-includes/functions.php | Merges user defined arguments into defaults array. |
Changelog
| Version | Description |
|---|---|
| 2.8.0 | Introduced. |
© 2003–2022 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/classes/wp_widget_text/update