Tính năng bộ lọc tìm kiếm (Search Filter) nghĩa là tính năng thêm bộ lọc tìm theo category, tag,…. (gọi chung là Taxonomy) bổ sung cho tính năng tìm kiếm bài viết theo từ khóa mặc định của WordPress. Đây là tính năng khá phổ biến mà bạn có thể dễ dàng thấy các website chuyên về bất động sản hay rao vặt để sử dụng.
Trong thời gian qua mình có hứa là sẽ viết tut làm tính năng tạo bộ lọc tìm kiếm này nhưng đang lúc hoàn thiện code cho tut thì mình đã tìm ra một giải pháp khác dễ dàng hơn mà ai cũng có thể làm được: Sử dụng plugin Taxonomy Picker.
Taxonomy Picker là một plugin miễn phí mà khi bạn cài vào nó sẽ tạo thêm một widget mới có chức năng chèn hộp tìm kiếm kèm theo bộ lọc dựa theo Taxonomy, tức là tất cả những gì mang khái niệm phân loại nội dung. Ví dụ, ngoài Category và Tag thì nếu bạn có sử dụng một custom taxonomy tên Loại nhà ở nữa chẳng hạn, thì plugin này sẽ giúp bạn thêm tính năng lọc các kết quả bên trong taxonomy Loại nhà ở khi tìm kiếm.
Một vài hình ảnh cho bạn dễ hình dung nhé:
Cũng nên nói thêm rằng theo như mình thử nghiệm thì cái widget search này làm việc rất tốt với tiếng Việt, vì cho dù bạn nhập từ khóa có dấu vào để tìm kiếm thì nó cũng sẽ tự động bỏ dấu đi và dĩ nhiên các kết quả có dấu vẫn hiển thị ra, hoặc nếu bạn cần tốt hơn nữa thì có thể dùng kèm với plugin Search Everything.
Hiện tại Taxonomy Picker chỉ có nhược điểm duy nhất đó là không hỗ trợ lọc theo post type. Nhưng mà có thể tạm fix bằng cách chèn code này vào trong file functions.php
function searchfilter($query) { if ($query->is_search && !is_admin() ) { $query->set('post_type',array('post','page')); } return $query; } add_filter('pre_get_posts','searchfilter');
Công dụng của đoạn code này đó là nó sẽ chỉ định post type nào được sử dụng trong tính năng tìm kiếm. Bạn có thể thay array('post','page')
thành các post type mà bạn muốn sử dụng.
Bạn cài đặt Taxonomy Picker như việc cài plugin thông thường. Sau đó vào Appearance -> Widgets và thêm widget Taxonomy Picker vào sidebar, rồi bạn có thể tùy chọn bật các taxonomy mà bạn muốn nó được lọc ra.
Chỉ đơn giản vậy thôi, chúc các bạn thành công!