Gần đây, chúng tôi đã hướng dẫn bạn cách giới hạn kết quả tìm kiếm cho các loại bài đăng cụ thể trong WordPress . Bây giờ chúng tôi sẽ chỉ cho bạn cách bạn có thể tạo hoàn toàn các biểu mẫu tìm kiếm khác nhau / nhiều. Bằng cách này, mỗi biểu mẫu có thể được giới hạn trong việc tìm kiếm một loại bài đăng cụ thể. Mặc dù điều này không quá khó nhưng nó sẽ yêu cầu bạn có hiểu biết cơ bản về các mẫu WordPress.
Đầu tiên, bạn sẽ cần một số biểu mẫu tìm kiếm. Đặt mã sau ở bất cứ nơi nào bạn muốn chúng có trong blog của mình:
Để chỉ định loại tìm kiếm mà biểu mẫu này sẽ thực hiện, chỉ cần thay đổi giá trị của trường ẩn. Ngay bây giờ nó được đặt thành “bình thường” nhưng nó có thể là bất cứ thứ gì bạn muốn. Tiếp theo, chúng ta cần sửa đổi tệp search.php. Mở nó lên và thay thế mọi thứ trong đó bằng mã này (trước tiên hãy sao chép mã hiện có vào khay nhớ tạm, bạn sẽ cần nó sau một phút):
Vì vậy, chúng tôi sẽ giả định rằng bạn có hai hình thức tìm kiếm, thông thường và sách. Mã này chỉ đơn giản là chuyển hướng tìm kiếm đến tệp php xử lý truy vấn cụ thể đó. Bây giờ chúng ta chỉ cần tạo các tệp đó. Vì vậy, hãy tiếp tục và tạo tệp normal-search.php và books-search.php (chỉ cần thay thế “normal” và “books” bằng bất kỳ giá trị nào bạn đang sử dụng).
Bây giờ, trong normal-search.php, hãy sao chép và dán đoạn mã sau:
$args = array( 'post_type' => 'post' ); $args = array_merge( $args, $wp_query->query ); query_posts( $args );
Ngay sau đó, hãy dán mã vòng lặp từ khay nhớ tạm mà bạn đã sao chép từ tệp search.php. Cùng với nhau, mã này sẽ chỉ tìm kiếm các bài đăng trên blog bình thường của bạn. Bây giờ, trong tệp books-search.php, hãy thêm đoạn mã này và dán lại vòng lặp ngay sau nó:
$args = array( 'post_type' => 'books' ); $args = array_merge( $args, $wp_query->query ); query_posts( $args );
Điều này sẽ khiến WordPress chỉ tìm kiếm loại bài đăng tùy chỉnh của “sách”. Bạn có thể lặp lại quá trình này cho bao nhiêu biểu mẫu tìm kiếm tùy thích.