[Thủ thuật WordPress] Hướng dẫn cách tìm kiếm chính xác tiêu đề hoặc nội dung trong WordPress – Nếu bạn thường xuyên sử dụng tính năng tìm kiếm của WordPress thì bạn sẽ sớm nhận ra rằng công cụ tìm kiếm của WordPress quá ư là “Cùi chuối” bởi lẽ khi bạn gõ một cụm từ tìm kiếm nào đó thì WordPress sẽ tự động tìm kiếm tất cả những gì có trong dữ liệu liên quan đến từ khóa và hiển thị chúng, việc hiển thị các thông tin không theo một chuẩn mực nào cả mà nó hiển thị một cách ngẫu nhiên điều này làm cho loãn thông tin khi người dùng sử dụng tính năng tìm kiếm.
Nếu bạn cảm thấy không yêu thích tính năng tìm kiếm của WordPress bạn muốn thay đổi cách tìm kiếm? bạn muốn kết quả xuất hiện tập trung vào một yêu cầu, nội dung sao đó mà kết quả bạn cần nhận được? trong bài viết này mình sẽ hướng dẫn các bạn cách tùy biến công cụ tìm kiếm WordPress để có thể tìm kiếm dựa theo tiêu đề và nội dung hoặc tìm kiếm từ khóa trong tiêu đề.
Tìm kiếm chính xác tiêu đề hoặc nội dung trong WordPress
Trong bài viết trước đây về thủ thuật WordPress mình có hướng dẫn các bạn cách xây dựng giao diện Dark Mode cho Website WordPress giúp bạn có thể tích hợp giao diện tối cho WordPress giúp người dùng có thể cải thiện mắt khi xem vào ban đêm, tiếp tục trong bài viết này mình sẽ hướng dẫn các bạn cách tìm kiếm chính xác tiêu đề hoặc nội dung trong WordPress.
#1 Tìm kiếm chính xác trong nội dung và tiêu đề
Khi sử dụng tính năng tìm kiếm này kết quả hiển thị sẽ được theo theo tiêu đề và nội dung có từ khóa liên quan cần tìm kiếm.
Đầu tiên bạn hãy truy cập vào tập tin functions.php của giao diện đang sử dụng sau đó Copy đoạn mã bên dưới và dán vào cuối tập tin là được.
add_filter('posts_search', 'pvs_search_is_exact', 20, 2); function pvs_search_is_exact($search, $wp_query){ global $wpdb; if(empty($search)) return $search; $q = $wp_query->query_vars; $n = !empty($q['exact']) ? '' : '%'; $search = $searchand = ''; foreach((array)$q['search_terms'] as $term) : $term = esc_sql(like_escape($term)); $search.= "{$searchand}($wpdb->posts.post_title REGEXP '[[:<:]]{$term}[[:>:]]') OR ($wpdb->posts.post_content REGEXP '[[:<:]]{$term}[[:>:]]')"; $searchand = ' AND '; endforeach; if(!empty($search)) : $search = " AND ({$search}) "; if(!is_user_logged_in()) $search .= " AND ($wpdb->posts.post_password = '') "; endif; return $search; }
Sau đó lưu lại tập tin và thử tìm kiếm từ khóa nào đó xem sao bạn sẽ thấy kết quả tìm kiếm được lượt bỏ đáng kể.
#2 Tìm kiếm chính xác tiêu đề
Tương tự khi sử dụng tính năng tìm kiếm này kết quả hiển thị sẽ được theo theo tiêu đề có từ khóa liên quan cần tìm kiếm.
Đầu tiên bạn cũng truy cập vào tập tin functions.php của giao diện đang sử dụng sau đó Copy đoạn mã bên dưới và dán vào cuối tập tin là được.
add_filter('posts_search', 'pvs_search_is_exact', 20, 2); function pvs_search_is_exact($search, $wp_query){ global $wpdb; if(empty($search)) return $search; $q = $wp_query->query_vars; $n = !empty($q['exact']) ? '' : '%'; $search = $searchand = ''; foreach((array)$q['search_terms'] as $term) : $term = esc_sql(like_escape($term)); $search.= "{$searchand}($wpdb->posts.post_title REGEXP '[[:<:]]{$term}[[:>:]]')"; $searchand = ' AND '; endforeach; if(!empty($search)) : $search = " AND ({$search}) "; if(!is_user_logged_in()) $search .= " AND ($wpdb->posts.post_password = '') "; endif; return $search; }
Sau đó lưu lại tập tin và thử tìm kiếm từ khóa nào đó xem sao bạn sẽ thấy kết quả được lượt bỏ đáng kể. Quá đơn giản để bạn có thể tìm kiếm chính xác tiêu đề hoặc nội dung trong WordPress phải không?
Chú ý: Nếu tập tin functions.php không phải là tập tin của giao diện con (Child theme) thì mỗi lần giao diện được cập nhật mới bạn bạn thực hiện lại các thao tác trên một lần nữa. Nếu bạn có giao diện con thì bạn không cần phải thực hiện lại các thao tác trên.
Cuối cùng không có gì hơn nếu bạn cảm thấy bài viết có ích hãy subscribe blog của mình thường xuyên để cập nhật những bài viết mới nhất qua Email – Chân thành cảm ơn!
Tôi đã thêm các tính năng này vào trang blog của tôi. Kết quả là lượng người ở lại xem các bài viết của tôi nó lâu hơn rất nhiều so với trước kia. Cám ơn, tác giả rất nhiều.
Chúc mừng bác 😛
Muốn tìm kiếm chính xác theo cụm từ trong title thì sửa hàm này thế nào bạn? VD mình gõ chữ Hà Nội nó tìm các title chứa chữ Hà Nội liền nhau chứ ko phải chứa chữ Hà và chữ Nội – post_title like “Hà Nội” chứ ko phải post_title like “Hà” and post_title like “Nội”
Về cơ bạn khi bạn muốn tìm kiếm cụm từ nào đó bạn chỉ việt bỏ trong dấu cặp dấu nháy cũng được mà bạn :P, còn bạn muốn tìm kiếm chính xác hãy thử các đoạn mã bên trên.
hiện tại mình cũng đang tìm hiểu về code, tuy nhiên rất khó đối với 1 seoer, bạn có list bài học không, cho mình xin. Thank bạn nhiều.
Mình cũng là dân học lỏm nên đụng đâu thì mình học đó nên mình không thể thống kê được bạn à! bạn có thể tìm trên Google có rất nhiều dạng tài liệu như bạn cần đấy!