esc_html__('左文案 + 右侧叠层图片案例展示。', 'aksrt'), 'classname' => 'widget_aksrt_tilt_cases', ] ); } public function widget($args, $instance): void { $title = trim((string) ($instance['intro_title'] ?? '')); $subtitle = trim((string) ($instance['intro_subtitle'] ?? '')); $badge = trim((string) ($instance['intro_badge_text'] ?? '')); $images = $this->normalize_images($instance['intro_showcase_images'] ?? []); $features = $this->normalize_features($instance['intro_features'] ?? []); $buttons = $this->normalize_buttons($instance['intro_buttons'] ?? []); if ($title === '' && $subtitle === '' && !$images) { return; } echo $args['before_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped echo '
' . esc_html($subtitle) . '
'; } if ($features) { echo '
sanitize_text_field((string) ($new_instance['intro_badge_text'] ?? '')), 'intro_badge_icon' => sanitize_text_field((string) ($new_instance['intro_badge_icon'] ?? '')), 'intro_title' => sanitize_textarea_field((string) ($new_instance['intro_title'] ?? '')), 'intro_title_highlight' => sanitize_text_field((string) ($new_instance['intro_title_highlight'] ?? '')), 'intro_subtitle' => sanitize_textarea_field((string) ($new_instance['intro_subtitle'] ?? '')), 'intro_features' => $this->normalize_features($new_instance['intro_features'] ?? []), 'intro_buttons' => $this->normalize_buttons($new_instance['intro_buttons'] ?? []), 'intro_showcase_images' => $this->normalize_images($new_instance['intro_showcase_images'] ?? []), 'go_link' => !empty($new_instance['go_link']) ? 1 : 0, ]; } }