Các phiên bản 1.5.x và 1.6.x đưa Init Live Search vượt ra khỏi một công cụ tìm kiếm cơ bản — trở thành một hệ thống tìm kiếm mạnh mẽ, tùy biến cao, và sẵn sàng tích hợp với mọi loại site WordPress.
Xem demo trực tiếp: https://youtu.be/nZocaTpi2hM
Có gì mới trong phiên bản 1.5.x và 1.6.x
Phiên bản 1.6.x đánh dấu bước chuyển mình lớn về giao diện người dùng (UI) của Init Live Search — cho phép tuỳ biến linh hoạt hơn, dễ tích hợp vào mọi loại website hoặc theme. Kèm theo đó là nền tảng vững chắc được xây từ chuỗi cải tiến 1.5.x trước đó.
- Lệnh thống kê theo thời gian: Thêm các slash command
/day,/week,/month— hiển thị bài viết được xem nhiều nhất theo ngày, tuần hoặc tháng (cần plugin Init View Count). - Default Slash Command: Tự động chạy slash command mặc định khi mở modal — có thể chọn thủ công hoặc bật chế độ “Smart Detection” để tự chọn lệnh phù hợp theo trang hiện tại.
- Preset UI Styles: Chọn sẵn giao diện tìm kiếm với các file CSS dựng sẵn như
style-full.css(toàn màn hình) vàstyle-topbar.css(thanh tìm kiếm nổi đầu trang). - Override & Custom Styles: Dễ dàng ghi đè giao diện bằng cách thêm file
init-live-search/style.csstrong theme — hoặc tắt toàn bộ CSS mặc định để tự viết lại từ đầu. - WooCommerce-ready: Tích hợp slash command như
/product,/on-sale,/stock,/sku,/price— hiển thị giá, badge sale, tồn kho và nút “Add to Cart”. - Search in SEO Metadata: Hỗ trợ tìm trong SEO Title và Meta Description từ các plugin: Yoast SEO, Rank Math, AIOSEO, TSF, SEOPress.
- Init Smart Tag-Aware Search: Tự động tăng độ chính xác bằng cách kết hợp tiêu đề bài viết với các post tag — hỗ trợ fallback thông minh.
- Tìm kiếm trong ACF: Lọc và tìm kiếm nội dung từ các custom field tuỳ chọn — chỉ lấy post đã xuất bản, có thể cấu hình thêm qua filter.
- Hỗ trợ đa ngôn ngữ: Tự động nhận diện và lọc kết quả theo ngôn ngữ với WPML hoặc Polylang — không cần cấu hình thủ công.
- Favorites & History: Quản lý bài viết yêu thích với
/fav, xoá bằng/fav_clear— hiển thị truy vấn gần đây với/history, tất cả lưu cục bộ, không cần đăng nhập. - Weighted Result Ranking: Kiểm soát thứ tự hiển thị kết quả bằng trọng số giữa tiêu đề, tag, nội dung SEO, v.v. — tinh chỉnh dễ dàng bằng filter.
- Refactor & Hiệu năng: Mã JS gọn gàng hơn, ít phụ thuộc, dễ tích hợp vào các theme hiện đại hoặc môi trường headless WordPress.
- Search Analytics: Theo dõi truy vấn người dùng ngay trong admin — thống kê từ khoá, tần suất, xuất CSV, không lưu dữ liệu cá nhân.
- Custom Slash Commands & Click Tracking: Cho phép tự định nghĩa slash command từ theme/plugin khác (qua filter + JS event) và theo dõi khi người dùng nhấp vào kết quả với sự kiện
ils:result-clicked. - Smart Excerpt Highlight: Tự động tạo đoạn trích ngắn và gạch chân từ khóa khớp trong
excerpthoặccontent— giúp người dùng dễ dàng xác định ngữ cảnh tìm kiếm. - Fallback thông minh & REST API ổn định: Tự chia nhỏ từ khoá dài, mở rộng tìm kiếm trong SEO metadata; dữ liệu luôn có cấu trúc đồng nhất giúp frontend dễ render.
Tính năng nổi bật
Hiệu năng cao, không phụ thuộc
Plugin được viết hoàn toàn bằng Vanilla JavaScript, không dùng jQuery hay thư viện ngoài. Mọi thao tác tìm kiếm đều thông qua WordPress REST API riêng với namespace chuẩn hóa (initlise/v1), kết hợp cơ chế debounce giúp giảm tải server khi người dùng gõ nhanh.
Hệ thống cache sử dụng localStorage để lưu kết quả tìm kiếm, lệnh slash command, danh sách yêu thích, và lịch sử đọc — tối ưu trải nghiệm và giảm số lần gọi API.
Tuỳ chỉnh UI linh hoạt
Giao diện tìm kiếm có thể chọn sẵn từ các preset như: toàn màn hình (style-full.css), thanh topbar (style-topbar.css), hoặc tắt toàn bộ CSS để tự viết lại. Bạn cũng có thể override CSS bằng file init-live-search/style.css trong theme hiện tại.
Từ khóa gợi ý thông minh
Người quản trị có thể nhập sẵn danh sách từ khóa gợi ý hoặc nhấn nút “Tạo tự động” để plugin phân tích tiêu đề bài viết. Hệ thống sẽ tự động loại bỏ stop words và gom từ khóa phổ biến nhất.
Điều hướng & thao tác bằng bàn phím
Plugin hỗ trợ điều hướng và thao tác toàn diện bằng bàn phím:
- ↑, ↓: Di chuyển giữa kết quả
- →: Thêm bài viết hiện tại vào danh sách yêu thích
- ←: Xoá bài viết khỏi danh sách yêu thích
- Enter: Mở bài viết
- Esc: Đóng modal tìm kiếm
Lưu ý: Phím trái/phải chỉ hoạt động khi đang chọn một kết quả cụ thể.
Hỗ trợ tìm kiếm nâng cao
Hệ thống slash command mạnh mẽ: tìm bài mới nhất (/recent), lọc theo tag, danh mục, sản phẩm WooCommerce, SKU, giá, trạng thái kho… Có thể mở rộng bằng REST API và filter riêng.
Hỗ trợ tìm kiếm trong các trường ACF và metadata từ plugin SEO như Yoast, Rank Math, AIOSEO, SEOPress, TSF — phù hợp với site nhiều nội dung nâng cao.
Tương thích tối đa & dễ tích hợp
Không cần chỉnh sửa theme hay thêm shortcode. Chỉ cần giữ trường <input name="s">, plugin sẽ tự động bắt sự kiện và mở modal tìm kiếm. Ngoài ra còn có thể kích hoạt qua HTML attribute, phím tắt, hoặc URL.
Responsive & hỗ trợ đa ngôn ngữ
Giao diện modal thân thiện với mọi kích thước màn hình. Plugin hỗ trợ sẵn tiếng Việt và tiếng Anh, tự động đổi theo ngôn ngữ site.
Cấu hình đơn giản
Giao diện cài đặt của Init Live Search được thiết kế đơn giản, dễ hiểu, cho phép tùy chỉnh mọi khía cạnh của quá trình tìm kiếm:
- Chọn post type để tìm kiếm:
post,page, hoặc bất kỳ custom post type nào cópublic=true - Chọn một hoặc nhiều cách mở modal tìm kiếm: focus vào input[name=”s”], triple-click, hoặc tổ hợp Ctrl/Cmd + /
- Tuỳ chọn bật/tắt Slash Command — hỗ trợ các lệnh như
/recent,/tag,/product,… - Đặt lệnh slash mặc định chạy tự động khi modal mở — ví dụ:
/recenthoặc/product - Chọn chế độ tìm kiếm: chỉ tiêu đề, tiêu đề + excerpt, tiêu đề + nội dung, hoặc kết hợp với post tag (Init Smart Tag-Aware Search)
- Nhập danh sách ACF field key để tìm kiếm nâng cao — ví dụ:
company_name, project_code - Bật tìm kiếm trong SEO Metadata: hỗ trợ các plugin Yoast, Rank Math, AIOSEO, TSF, SEOPress
- Bật fallback thông minh: tự động rút gọn từ khoá, ghép cụm bigram nếu không đủ kết quả
- Tuỳ chỉnh độ trễ tìm kiếm (debounce) từ 100–3000ms để kiểm soát hiệu năng
- Giới hạn số lượng kết quả hiển thị trong modal (1–100)
- Giới hạn số từ được chọn để kích hoạt Quick Search bằng tooltip (0–20, đặt 0 để tắt)
- Bật/tắt voice input (SpeechRecognition API) nếu muốn dùng micro
- Tuỳ chọn bật voice input nếu muốn dùng micro (SpeechRecognition API)
- Chọn preset giao diện: modal mặc định, toàn màn hình, hoặc thanh topbar. Cũng có thể tắt toàn bộ CSS để tự viết lại.
- Tuỳ chọn thêm UTM mặc định vào URL kết quả (ví dụ:
utm_source=search) - Nhập hoặc tự động tạo danh sách từ khoá gợi ý mặc định
Công nghệ sử dụng
Plugin ưu tiên hiệu suất và khả năng mở rộng với kiến trúc hiện đại, tách biệt rõ frontend và backend.
- Vanilla JavaScript: Toàn bộ logic frontend viết bằng JavaScript thuần, không dùng jQuery hay framework
- Custom REST API: Giao tiếp qua các endpoint chuẩn hoá thuộc namespace riêng
initlise/v1 - Modular architecture: Toàn bộ mã nguồn JS được tách rõ theo từng chức năng: trigger, command, render, API, v.v.
- Không phụ thuộc bên ngoài: Không dùng thư viện bên thứ ba — tất cả đều built-in
- Biểu tượng & ảnh: Dùng SVG trực tiếp hoặc ảnh fallback mặc định (qua filter)
- Cấu hình toàn cục: Định nghĩa thông qua biến
window.InitPluginSuiteLiveSearchConfig - Hỗ trợ theme override: Có thể ghi đè toàn bộ style bằng file
init-live-search/style.csstrong theme - localStorage-first: Dùng localStorage cho cache, slash command history, favorites, và session-state
Mã nguồn & Phát triển
Plugin Init Live Search được phát triển dưới dạng mã nguồn mở và duy trì thường xuyên trên GitHub. Đây là nơi bạn có thể theo dõi tiến độ phát triển, cập nhật sớm, hoặc đóng góp ý tưởng, báo lỗi và đề xuất tính năng mới.
- Repo chính thức: github.com/brokensmile2103/init-live-search
- Hãy nhấn Star để ủng hộ plugin – giúp tăng độ hiển thị trong cộng đồng mã nguồn mở.
- Góp ý, báo lỗi hoặc đề xuất thêm tính năng qua tab Issues của repo.
Cài đặt và sử dụng
- Cài đặt và kích hoạt plugin như các plugin thông thường.
- Plugin tự động hoạt động trên các trường
<input name="s">. - Bạn có thể mở modal tìm kiếm bằng Ctrl + / hoặc nhấp 3 lần trên vùng trống bất kỳ.
- Cấu hình từ khóa gợi ý tại Cài đặt → Init Live Search.
Dành cho Developer
Plugin Init Live Search được xây dựng với định hướng mở rộng dễ dàng, phù hợp cho developer tích hợp sâu vào theme hoặc plugin khác.
- Filter & Hook: Plugin cung cấp nhiều filter để can thiệp vào kết quả tìm kiếm, danh sách gợi ý, danh mục lọc và cấu hình đầu ra. Xem chi tiết trong bài viết hướng dẫn sử dụng các filter trong Init Live Search.
- Sự kiện JavaScript: Các sự kiện như
ils:modal-opened,ils:results-loaded,ils:search-started… được phát ra trong quá trình tương tác, giúp developer gắn tracking, analytics hoặc custom UI. Xem chi tiết tại hướng dẫn sử dụng sự kiện JavaScript ILS. - Tuỳ biến giao diện: Chọn preset có sẵn, override bằng file
style.csstrong theme, hoặc tắt toàn bộ CSS để viết lại từ đầu. Tham khảo hướng dẫn tùy chỉnh giao diện Init Live Search. - REST API: Dữ liệu tìm kiếm trả về qua REST endpoint chuẩn hóa
/initlise/v1/search, có thể gọi riêng bằng JavaScript tùy ý. Xem đầy đủ tại danh sách endpoint REST API trong Init Live Search. - Slash Command: Init Live Search hỗ trợ hệ thống command dạng
/commandnhư/recent,/id,/tag… cực kỳ mạnh mẽ. Xem chi tiết tại hướng dẫn sử dụng Slash Command trong Init Live Search. - Trigger nâng cao: Modal có thể được mở bằng nhiều cách: phím tắt, triple click, focus vào input, URL (deep link), bôi đen văn bản, hoặc thuộc tính
data-ils. Xem toàn bộ tại tổng hợp các cách mở Init Live Search modal. - Headless & static site: Plugin có thể tích hợp hoàn chỉnh với các site dùng REST API, headless WordPress hoặc static site như Hugo, Astro, Next.js… Xem hướng dẫn chi tiết tại cách tích hợp Init Live Search với headless/static site.
- Cache nâng cao bằng Cloudflare: Có thể dùng Cloudflare Cache Rules để cache kết quả tìm kiếm slash command, giảm tải server mà vẫn giữ trải nghiệm tức thì. Xem chi tiết tại hướng dẫn cấu hình cache với Cloudflare.
- Biến toàn cục: Cấu hình JS có thể truy cập qua
window.InitPluginSuiteLiveSearchđể thay đổi hành vi động mà không sửa mã nguồn. - Cấu trúc code rõ ràng: Phân tách thành các module riêng gồm: REST API, suggestion engine, modal UI, filter, trigger, cache.
Plugin không bị khóa cứng logic, nên hoàn toàn có thể tích hợp với các tính năng nâng cao như WooCommerce, tìm kiếm trong taxonomy tùy chỉnh, hoặc hỗ trợ shortcode tùy biến trong template.
Nếu bạn mới bắt đầu hoặc muốn khám phá sâu hơn, đừng bỏ qua series Init Live Search Toàn tập – nơi tổng hợp các bài viết từ cơ bản đến nâng cao dành cho plugin này.
Góp ý & Liên hệ
Bạn có góp ý, phát hiện lỗi hoặc muốn đề xuất tính năng mới? Hãy để lại bình luận bên dưới hoặc tạo issue trên GitHub. Đừng ngại! Mọi phản hồi từ bạn sẽ giúp Init Live Search ngày càng tốt hơn.
Admin
15/05/2025 lúc 10:29 sáng
Nguyên lý của plugin này cũng tương tự chức năng tìm kiếm trên trang, các bạn có thể thử tìm kiếm nhé! ❤️
Admin
25/05/2025 lúc 2:08 chiều
Cập nhật: hiện tại trang đã chuyển qua dùng plugin Init Live Search cho tìm kiếm luôn rồi nhé, các bạn có thể test trực tiếp tại trang