Tìm kiếm chỉ trong tiêu đề bài viết WordPress

Tính năng tìm kiếm mặc định của WordPress không chỉ tìm trong tiêu đề bài viết mà còn tìm cả trong nội dung, phần mô tả, chuyên mục và tags. Việc này không những khiến cho quá trình tìm kiếm chậm hơn mà còn cho ra những kết quả không mấy liên quan. Để tối ưu WordPress hơn, các bạn nên sửa lại tính năng này để chỉ tìm kiếm trong tiêu đề của bài viết là đủ.

Cách khác: Thay thế công cụ tìm kiếm mặc định của WordPress bằng Google Search

Tại sao nên như vậy?

Nếu website của bạn có ít nội dung thì tốc độ tìm kiếm không ảnh hưởng lắm. Nhưng nếu có nhiều nội dung (cỡ hàng nghìn bài viết) thì sao? WordPress không “khôn” như Google. Hơn nữa hosting của bạn cũng không “nhanh” như Google. Vậy nên để tối ưu thì tốt nhất là bạn nên chỉ tìm kiếm trong title bài viết.

Mặt khác, nếu chỉ tìm trong title thì kết quả tìm kiếm sẽ chính xác hơn, đúng với mong muốn của người dùng hơn.

Hướng dẫn thực hiện

Rất đơn giản, bạn chỉ cần sửa file functions.php trong thư mục themes của WordPress. Thêm vào đoạn code sau:

/*
* Search only by title
*/
function search_by_title_only($search, &$wp_query)
{
global $wpdb;
if(empty($search)) {
return $search; // skip processing - no search term in query
}
$q = $wp_query->query_vars;
$n = !empty($q['exact']) ? '' : '%';
$search =
$searchand = '';
foreach ((array)$q['search_terms'] as $term) {
$term = esc_sql($wpdb->esc_like($term));
$search .= "{$searchand}($wpdb->posts.post_title LIKE '{$n}{$term}{$n}')";
$searchand = ' AND ';
}
if (!empty($search)) {
$search = " AND ({$search}) ";
if (!is_user_logged_in())
$search .= " AND ($wpdb->posts.post_password = '') ";
}
return $search;
}
add_filter('posts_search', 'search_by_title_only', 500, 2);

Lưu ý: Nếu bạn update hoặc thay đổi themes thì phải làm lại bước này nhé.

Cách này sẽ áp dụng cho tất cả truy vấn tìm kiếm trên website. Nếu bạn muốn giới hạn cho một query nào thì bạn chỉ cần thêm thuộc tính vào trong query_vars và sau đó kiểm tra lại cho trùng khớp là được.

Chúc các bạn thành công!

guest
0 Bình luận
Inline Feedbacks
Xem tất cả bình luận
0
Gửi bình luận của bạn về bài viết này.x
()
x