Вход на сайт

Просмотр новости

Найдите то, что Вас интересует

Хук-событие WordPress: in_widget_form

Дата публикации: 20-09-2026 10:57:59

Срабатывает в конце формы настроек виджета. Позволяет вывести дополнительные поля для классических виджетов.

Основное содержимое страницы с новостью.

Срабатывает в конце формы настроек виджета. Позволяет вывести дополнительные поля для классических виджетов.

Событие также срабатывает при формировании настроек блока «Устаревший виджет» через REST API.

Событие не сработает, если фильтр widget_form_callback вернул false.

Если у виджета нет собственной формы, метод WP_Widget::form() возвращает строку noform. При добавлении полей измените $return на null, иначе WordPress может считать, что у виджета нет настроек.

Стандартный текст об отсутствии настроек, который выводит виджет без собственной формы, при необходимости можно скрыть через CSS.

Использование
add_action( 'in_widget_form', 'wp_kama_in_widget_form_action' );

/**
 * Function for `in_widget_form` action-hook.
 * 
 * @param WP_Widget $widget The widget instance (passed by reference).
 *
 * @return void
 */
function wp_kama_in_widget_form_action( $widget ){
	// action...
}
$widget(WP_Widget)
Объект текущего виджета. Передаётся по ссылке.
$return(null|string)
Значение, которое вернул метод формы виджета. Стандартный метод возвращает noform.
Передаётся по ссылке. Установите null, если добавляете поля к виджету без собственной формы.
$instance(массив)
Текущие настройки экземпляра виджета.
Примеры#1 Добавление поля ко всем классическим виджетам

Добавим текстовое поле Заметка и сохраним его значение вместе с настройками виджета.

<?php
add_action( 'in_widget_form', 'wp_kama_add_widget_note_field', 10, 3 );

function wp_kama_add_widget_note_field( $widget, &$return, $instance ) {
	$value  = $instance['wp_kama_note'] ?? '';
	$id     = $widget->get_field_id( 'wp_kama_note' );
	$name   = $widget->get_field_name( 'wp_kama_note' );
	$return = null;
	?>
	<p>
		<label for="<?php echo esc_attr( $id ); ?>">
			<?php esc_html_e( 'Заметка', 'my-plugin' ); ?>
		</label>
		<input
			type="text"
			class="widefat"
			id="<?php echo esc_attr( $id ); ?>"
			name="<?php echo esc_attr( $name ); ?>"
			value="<?php echo esc_attr( $value ); ?>"
		>
	</p>
	<?php
}

add_filter( 'widget_update_callback', 'wp_kama_save_widget_note', 10, 4 );

function wp_kama_save_widget_note( $instance, $new_instance, $old_instance, $widget ) {
	if ( isset( $new_instance['wp_kama_note'] ) ) {
		$instance['wp_kama_note'] = sanitize_text_field( $new_instance['wp_kama_note'] );
	} else {
		unset( $instance['wp_kama_note'] );
	}

	return $instance;
}

Схожие новости

#Наименование новостиТональностьИнформативностьДата публикации
1Хук-событие WordPress: wp_insert_post019.0920-09-2026
2Хук-событие WordPress: admin_init023.6820-09-2026
3Хук-событие WordPress: admin_head023.6820-09-2026
4Хук-событие WordPress: restrict_manage_posts012.422-09-2026
5Хук-Фильтр WordPress: wp_title018.3320-09-2026
6Хук-Фильтр WordPress: post_type_link021.1121-09-2026
7Хук-Фильтр WordPress: get_the_excerpt019.0922-09-2026
8Хук-событие WordPress: network_admin_edit_(action)021.1601-10-2026
9Хук-событие WordPress: edit_post_(post_type)018.3322-09-2026

Классификация: Пресс-релизы. Схожих патентов: 0. Схожих новостей: 9. Тональность: 0. Информативность: 16.25. Источник: wp-kama.ru.