WP_Widget_Text::form()publicWP 2.8.0

Outputs the Text widget settings form.

Method of the class: WP_Widget_Text{}

Hooks from the method

Return

null. Nothing (null).

Usage

$WP_Widget_Text = new WP_Widget_Text();
$WP_Widget_Text->form( $instance );
$instance(array) (required)
Current settings.

Notes

Changelog

Since 2.8.0 Introduced.
Since 4.8.0 Form only contains hidden inputs which are synced with JS template.
Since 4.8.1 Restored original form to be displayed when in legacy mode.

WP_Widget_Text::form() code WP 6.5.4

<?php
public function form( $instance ) {
	$instance = wp_parse_args(
		(array) $instance,
		array(
			'title' => '',
			'text'  => '',
		)
	);
	?>
	<?php if ( ! $this->is_legacy_instance( $instance ) ) : ?>
		<?php

		if ( user_can_richedit() ) {
			add_filter( 'the_editor_content', 'format_for_editor', 10, 2 );
			$default_editor = 'tinymce';
		} else {
			$default_editor = 'html';
		}

		/** This filter is documented in wp-includes/class-wp-editor.php */
		$text = apply_filters( 'the_editor_content', $instance['text'], $default_editor );

		// Reset filter addition.
		if ( user_can_richedit() ) {
			remove_filter( 'the_editor_content', 'format_for_editor' );
		}

		// Prevent premature closing of textarea in case format_for_editor() didn't apply or the_editor_content filter did a wrong thing.
		$escaped_text = preg_replace( '#</textarea#i', '&lt;/textarea', $text );

		?>
		<input id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" class="title sync-input" type="hidden" value="<?php echo esc_attr( $instance['title'] ); ?>">
		<textarea id="<?php echo $this->get_field_id( 'text' ); ?>" name="<?php echo $this->get_field_name( 'text' ); ?>" class="text sync-input" hidden><?php echo $escaped_text; ?></textarea>
		<input id="<?php echo $this->get_field_id( 'filter' ); ?>" name="<?php echo $this->get_field_name( 'filter' ); ?>" class="filter sync-input" type="hidden" value="on">
		<input id="<?php echo $this->get_field_id( 'visual' ); ?>" name="<?php echo $this->get_field_name( 'visual' ); ?>" class="visual sync-input" type="hidden" value="on">
	<?php else : ?>
		<input id="<?php echo $this->get_field_id( 'visual' ); ?>" name="<?php echo $this->get_field_name( 'visual' ); ?>" class="visual" type="hidden" value="">
		<p>
			<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label>
			<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $instance['title'] ); ?>" />
		</p>
		<?php
		if ( ! isset( $instance['visual'] ) ) {
			$widget_info_message = __( 'This widget may contain code that may work better in the &#8220;Custom HTML&#8221; widget. How about trying that widget instead?' );
		} else {
			$widget_info_message = __( 'This widget may have contained code that may work better in the &#8220;Custom HTML&#8221; widget. If you have not yet, how about trying that widget instead?' );
		}

		wp_admin_notice(
			$widget_info_message,
			array(
				'type'               => 'info',
				'additional_classes' => array( 'notice-alt', 'inline' ),
			)
		);
		?>
		<p>
			<label for="<?php echo $this->get_field_id( 'text' ); ?>"><?php _e( 'Content:' ); ?></label>
			<textarea class="widefat" rows="16" cols="20" id="<?php echo $this->get_field_id( 'text' ); ?>" name="<?php echo $this->get_field_name( 'text' ); ?>"><?php echo esc_textarea( $instance['text'] ); ?></textarea>
		</p>
		<p>
			<input id="<?php echo $this->get_field_id( 'filter' ); ?>" name="<?php echo $this->get_field_name( 'filter' ); ?>" type="checkbox"<?php checked( ! empty( $instance['filter'] ) ); ?> />&nbsp;<label for="<?php echo $this->get_field_id( 'filter' ); ?>"><?php _e( 'Automatically add paragraphs' ); ?></label>
		</p>
		<?php
	endif;
}