Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wordpress-seo domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vinascript/html/wp-includes/functions.php on line 6114
Chỉ tìm kiếm bằng tiêu đề bài viết trong WordPress - VinaScript

Latest Post

Triển khai dự án PHP, Mysql với Nginx trên Docker Tìm hiểu về HTML – Ưu điểm, nhược điểm và cách hoạt động của HTML

Trong WordPress, khi bạn thực hiện tìm kiếm theo từ khóa, hệ thống sẽ quét qua cả tiêu đề bài viết (post_title) và nội dung bài viết (post_content). Tuy nhiên, khi số lượng bài viết trong hệ thống WordPress tăng lên và đạt đến mức lớn, chẳng hạn trên 100,000 bài viết, quá trình tìm kiếm này có thể trở nên rất chậm và tốn nhiều tài nguyên.

Để tối ưu hóa tìm kiếm trong trường hợp này, bạn có thể áp dụng một đoạn mã nhất định. Thay vì tìm kiếm từ khóa trong cả tiêu đề và nội dung của mỗi bài viết, đoạn mã sau sẽ tập trung tìm kiếm chỉ trong phần tiêu đề của bài viết. Điều này giúp giảm bớt áp lực lên hệ thống và cải thiện hiệu suất tìm kiếm khi bạn đối mặt với một lượng lớn 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);

Để lại một bình luậ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 *