站长朋友们在使用WordPress建站的过程中会发现,WordPress 默认的搜索功能还是挺弱的,搜索出来的结果不符合人意,如果您想让它检索出来的结果更加相关,可以限定只搜索文章的标题,下面我们就来介绍一下实现的方法。
切换到主题目录,打开 functions.php 文件,加入以下代码即可:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | /** * Search SQL filter for matching against post title only. * @param string $search * @param WP_Query $wp_query */ function wp_search_by_title( $search, $wp_query ) { if ( ! empty( $search ) && ! empty( $wp_query->query_vars['search_terms'] ) ) { global $wpdb; $q = $wp_query->query_vars; $n = ! empty( $q['exact'] ) ? '' : '%'; $search = array(); foreach ( ( array ) $q['search_terms'] as $term ) $search[] = $wpdb->prepare( "$wpdb->posts.post_title LIKE %s", $n . $wpdb->esc_like( $term ) . $n ); if ( ! is_user_logged_in() ) $search[] = "$wpdb->posts.post_password = ''"; $search = ' AND ' . implode( ' AND ', $search ); } return $search; } add_filter( 'posts_search', 'wp_search_by_title', 10, 2 ); |
有需要的朋友可以使用上面的代码测试一下。