__('AKSRT 多 TAB 商品列表组件(每 tab 独立筛选)。', 'aksrt')] ); } public function widget($args, $instance): void { $title = apply_filters('widget_title', $instance['title'] ?? ''); $tabs_raw = (string) ($instance['tabs'] ?? ''); $per_page = max(1, min(20, (int) ($instance['per_page'] ?? 8))); // Parse tabs: "Tab Name|cat_ids|discount_ids\n..." $tabs = []; foreach (array_filter(explode("\n", $tabs_raw)) as $line) { $parts = explode('|', trim($line)); if (count($parts) >= 1 && trim($parts[0]) !== '') { $tabs[] = [ 'label' => trim($parts[0]), 'cat_ids' => trim($parts[1] ?? ''), 'discount_ids' => trim($parts[2] ?? ''), ]; } } if (empty($tabs)) { return; } echo $args['before_widget']; if ($title) { echo $args['before_title'] . esc_html($title) . $args['after_title']; } echo '
'; echo $args['after_widget']; } public function form($instance): void { $defaults = [ 'title' => __('商品精选', 'aksrt'), 'tabs' => "热门推荐|\n最新上架|", 'per_page' => 8, ]; $instance = wp_parse_args($instance, $defaults); ?>
sanitize_text_field($new_instance['title'] ?? ''), 'tabs' => sanitize_textarea_field($new_instance['tabs'] ?? ''), 'per_page' => max(1, min(20, (int) ($new_instance['per_page'] ?? 8))), ]; } }