Chỉ tìm kiếm bằng tiêu đề bài viết trong WordPress


WordPress khi các bạn tìm kiếm từ khóa thì nó sẽ tìm kiếm nội dung từ khóa ở cả tiêu đề (post_title) và nội dung bài viết (post_content). Khi số lượng bài viết trong WordPress lớn tới tầm > 100k bài viết thì việc tìm kiếm này rất chậm. Thay vì tìm kiếm từ khóa bằng cả tiêu đề và nội dung trong wordpress, đoạn code sau sẽ chỉ xử lý tìm kiếm chỉ với tiêu đề bài viết.

Hãy đặt đoạn source code sau vào file functions.php của WordPress

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);

Nguồn: vinasupport.com

             
SHARE

Bài viết liên quan

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web