Срабатывает в конце формы настроек виджета. Позволяет вывести дополнительные поля для классических виджетов.
Срабатывает в конце формы настроек виджета. Позволяет вывести дополнительные поля для классических виджетов.
Событие также срабатывает при формировании настроек блока «Устаревший виджет» через 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...
}noform.null, если добавляете поля к виджету без собственной формы.Добавим текстовое поле Заметка и сохраним его значение вместе с настройками виджета.
<?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_post | 0 | 19.09 | 20-09-2026 |
| 2 | Хук-событие WordPress: admin_init | 0 | 23.68 | 20-09-2026 |
| 3 | Хук-событие WordPress: admin_head | 0 | 23.68 | 20-09-2026 |
| 4 | Хук-событие WordPress: restrict_manage_posts | 0 | 12.4 | 22-09-2026 |
| 5 | Хук-Фильтр WordPress: wp_title | 0 | 18.33 | 20-09-2026 |
| 6 | Хук-Фильтр WordPress: post_type_link | 0 | 21.11 | 21-09-2026 |
| 7 | Хук-Фильтр WordPress: get_the_excerpt | 0 | 19.09 | 22-09-2026 |
| 8 | Хук-событие WordPress: network_admin_edit_(action) | 0 | 21.16 | 01-10-2026 |
| 9 | Хук-событие WordPress: edit_post_(post_type) | 0 | 18.33 | 22-09-2026 |