esc_html__('带样式的搜索框', 'aksrt'), ]); } public function widget($args, $instance): void { echo $args['before_widget']; $title = apply_filters('widget_title', $instance['title'] ?? '', $instance, $this->id_base); if ($title) echo $args['before_title'] . esc_html($title) . $args['after_title']; $placeholder = sanitize_text_field($instance['placeholder'] ?? __('搜索文章...', 'aksrt')); ?>
sanitize_text_field($new_instance['title'] ?? ''), 'placeholder' => sanitize_text_field($new_instance['placeholder'] ?? ''), ]; } } // ============================================================ // 2. 公告通知小工具 // ============================================================ class AKSRT_Notice_Widget extends WP_Widget { public function __construct() { parent::__construct('aksrt_notice', esc_html__('AKSRT 公告', 'aksrt'), [ 'description' => esc_html__('显示公告/通知信息', 'aksrt'), ]); } public function widget($args, $instance): void { echo $args['before_widget']; $title = apply_filters('widget_title', $instance['title'] ?? '', $instance, $this->id_base); $content = wp_kses_post($instance['content'] ?? ''); $style = sanitize_key($instance['style'] ?? 'info'); $icon = sanitize_text_field($instance['icon'] ?? 'fas fa-bullhorn'); if ($title) echo $args['before_title'] . esc_html($title) . $args['after_title']; ?>
sanitize_text_field($new_instance['title'] ?? ''), 'content' => wp_kses_post($new_instance['content'] ?? ''), 'style' => in_array($new_instance['style'] ?? '', ['info', 'success', 'warning', 'danger'], true) ? $new_instance['style'] : 'info', 'icon' => sanitize_text_field($new_instance['icon'] ?? 'fas fa-bullhorn'), ]; } } // ============================================================ // 3. 最新评论小工具 // ============================================================ class AKSRT_Recent_Comments_Widget extends WP_Widget { public function __construct() { parent::__construct('aksrt_recent_comments', esc_html__('AKSRT 最新评论', 'aksrt'), [ 'description' => esc_html__('显示最新评论列表', 'aksrt'), ]); } public function widget($args, $instance): void { echo $args['before_widget']; $title = apply_filters('widget_title', $instance['title'] ?? __('最新评论', 'aksrt'), $instance, $this->id_base); $count = max(1, min(20, (int) ($instance['count'] ?? 5))); $show_avatar = !empty($instance['show_avatar']); if ($title) echo $args['before_title'] . esc_html($title) . $args['after_title']; $comments = get_comments([ 'number' => $count, 'status' => 'approve', 'post_status' => 'publish', ]); if ($comments) : ?>
sanitize_text_field($new_instance['title'] ?? ''), 'count' => max(1, min(20, (int) ($new_instance['count'] ?? 5))), 'show_avatar' => !empty($new_instance['show_avatar']), ]; } } // ============================================================ // 4. 友情链接小工具 // ============================================================ class AKSRT_Friend_Links_Widget extends WP_Widget { public function __construct() { parent::__construct('aksrt_friend_links', esc_html__('AKSRT 友情链接', 'aksrt'), [ 'description' => esc_html__('显示友情链接列表', 'aksrt'), ]); } public function widget($args, $instance): void { echo $args['before_widget']; $title = apply_filters('widget_title', $instance['title'] ?? __('友情链接', 'aksrt'), $instance, $this->id_base); $show_icon = !empty($instance['show_icon']); $columns = max(1, min(4, (int) ($instance['columns'] ?? 2))); if ($title) echo $args['before_title'] . esc_html($title) . $args['after_title']; $links = class_exists('AKSRT_Settings') ? AKSRT_Settings::get_friend_links() : []; if (!empty($links)) : ?>
sanitize_text_field($new_instance['title'] ?? ''), 'columns' => max(1, min(4, (int) ($new_instance['columns'] ?? 2))), 'show_icon'=> !empty($new_instance['show_icon']), ]; } } // ============================================================ // 5. 图标卡片小工具 // ============================================================ class AKSRT_Icon_Cards_Widget extends WP_Widget { public function __construct() { parent::__construct('aksrt_icon_cards', esc_html__('AKSRT 图标卡片', 'aksrt'), [ 'description' => esc_html__('显示图标+文字卡片网格', 'aksrt'), ]); } public function widget($args, $instance): void { echo $args['before_widget']; $title = apply_filters('widget_title', $instance['title'] ?? '', $instance, $this->id_base); $cards = isset($instance['cards']) && is_array($instance['cards']) ? $instance['cards'] : []; $columns = max(1, min(4, (int) ($instance['columns'] ?? 2))); if ($title) echo $args['before_title'] . esc_html($title) . $args['after_title']; if (!empty($cards)) : ?> '', 'icon' => '', 'link' => '', 'description' => '']; } ?>
" value="" placeholder="">
" value="" placeholder="">
" value="" placeholder="">
" value="" placeholder="">
" value="" placeholder="">
" value="" placeholder="">
" value="" placeholder="">
in_array($new_instance['mode'] ?? '', ['html', 'gap'], true) ? $new_instance['mode'] : 'html', 'title' => sanitize_text_field($new_instance['title'] ?? ''), 'content' => wp_kses_post($new_instance['content'] ?? ''), 'gap_height' => max(0, min(200, (int) ($new_instance['gap_height'] ?? 20))), ]; } }
comment_content, 15, '...')); ?>
ID)); ?>