Code tìm kiếm theo tiêu đề của bài viết trong WordPress

ARTRU

Theo tìm kiếm mặc định của WordPress, nó sẽ so sánh truy vấn tìm kiếm với tiêu đề post_title, đoạn trích post_excerpt và nội dung post_content.

Trong một vài trường hợp, bạn chỉ cần kết quả tìm kiếm theo tiêu đề của bài viết thì phải viết thêm custom code để lọc truy vấn.

  • Đây là đoạn code có chức năng lọc truy vấn chỉ theo tiêu đề. Bạn có thể thêm vào tệp function.php hoặc plugin Code Snippets.
function ARTRU_Search_By_Title($columns, $search, $query) {
	return ['post_title'];
}
add_filter('post_search_columns', 'ARTRU_Search_By_Title', 10, 3);
  • Nếu bạn cần bộ lọc chi tiết hơn nữa, ví dụ như tiếng Việt có dấu thì dùng code bên dưới.
function ARTRU_Search_By_Title_With_Special_Characters($search, $wp_query) {
    global $wpdb;
    $search_term = $wp_query->query_vars['s'];
    if ($search_term) {
        $search = $wpdb->prepare(
            " AND LOWER({$wpdb->posts}.post_title) LIKE BINARY LOWER(%s) ",
            '%' . $wpdb->esc_like($search_term) . '%'
        );
    }
    return $search;
}
add_filter('posts_search', 'ARTRU_Search_By_Title_With_Special_Characters', 10, 2);
BÌNH LUẬN

Bài Viết Liên Quan