esc_html__('多图轮播,支持链接与标题。', 'aksrt'), 'classname' => 'widget_aksrt_slider', ] ); } public function widget($args, $instance): void { $slides = $this->normalize_slides($instance['slides'] ?? []); if (!$slides) { return; } $interval = max(2, min(20, (int) ($instance['interval'] ?? 4))); $loop = !empty($instance['loop']); $dots = !empty($instance['pagination']); $nav = !empty($instance['button']); $blank = !empty($instance['blank']); $height = max(80, min(800, (int) ($instance['height'] ?? 220))); echo $args['before_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped $title = apply_filters('widget_title', (string) ($instance['title'] ?? ''), $instance, $this->id_base); if ($title !== '') { echo $args['before_title'] . esc_html($title) . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } $uid = 'aksrt-slider-' . esc_attr($this->id); printf( '
'; echo $args['after_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped // Inline init once per widget (no extra enqueue dependency). ?> normalize_slides($instance['slides'] ?? []); if (!$slides) { $slides = [ ['image' => '', 'href' => '', 'title' => '', 'desc' => ''], ['image' => '', 'href' => '', 'title' => '', 'desc' => ''], ]; } ?>
" placeholder=""> " placeholder=""> " placeholder=""> " placeholder="">
normalize_slides($new_instance['slides'] ?? []); return [ 'title' => sanitize_text_field((string) ($new_instance['title'] ?? '')), 'interval' => max(2, min(20, (int) ($new_instance['interval'] ?? 4))), 'height' => max(80, min(800, (int) ($new_instance['height'] ?? 220))), 'loop' => !empty($new_instance['loop']) ? 1 : 0, 'button' => !empty($new_instance['button']) ? 1 : 0, 'pagination' => !empty($new_instance['pagination']) ? 1 : 0, 'blank' => !empty($new_instance['blank']) ? 1 : 0, 'slides' => $slides, ]; } /** * @param mixed $raw * @return array