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