и в sidebars_widgets: менять его нельзя. parent::__construct( 'lingocanvas_language_switcher', __( 'Language switcher', 'lingocanvas' ), array( 'description' => __( 'Links to the current page in the other languages of the site.', 'lingocanvas' ) ) ); } /** * Выводит виджет. * * @param array $args Обёртки темы. * @param array $instance Настройки виджета. */ public function widget( $args, $instance ): void { $switcher = Plugin::container()->get( LanguageSwitcher::class ); $html = $switcher->render( empty( $instance['hide_current'] ), ! empty( $instance['as_dropdown'] ) ); if ( '' === $html ) { return; } $title = apply_filters( 'widget_title', (string) ( $instance['title'] ?? '' ), $instance, $this->id_base ); echo wp_kses_post( (string) ( $args['before_widget'] ?? '' ) ); if ( '' !== $title ) { echo wp_kses_post( (string) ( $args['before_title'] ?? '' ) . $title . (string) ( $args['after_title'] ?? '' ) ); } echo wp_kses( $html, array( 'ul' => array( 'class' => array() ), 'li' => array( 'class' => array() ), 'a' => array( 'href' => array(), 'lang' => array(), 'hreflang' => array(), 'aria-current' => array(), ), 'select' => array( 'class' => array(), 'aria-label' => array(), 'onchange' => array(), ), 'option' => array( 'value' => array(), 'lang' => array(), 'selected' => array(), ), ) ); echo wp_kses_post( (string) ( $args['after_widget'] ?? '' ) ); } /** * Форма настроек виджета. * * @param array $instance Текущие настройки. */ public function form( $instance ): string { $title = (string) ( $instance['title'] ?? '' ); ?>

$new_instance Новые значения. * @param array $old_instance Прежние значения. * @return array */ public function update( $new_instance, $old_instance ): array { unset( $old_instance ); return array( 'title' => sanitize_text_field( (string) ( $new_instance['title'] ?? '' ) ), 'hide_current' => ! empty( $new_instance['hide_current'] ), 'as_dropdown' => ! empty( $new_instance['as_dropdown'] ), ); } }