1. it168资讯网首页
  2. 网站教程

WordPress实现自带搜索只搜索标题不搜索文章内容的方法

很多小伙伴做站的时候,都会使用WordPress程序进行搭建。如果文章的数量一多,就会出现卡顿的问题。WordPress文章卡顿可以用一些缓存静态插件来解决,但是还有一个问题就是搜索的时候,文章数量一…

WordPress

很多小伙伴做站的时候,都会使用WordPress程序进行搭建。如果文章的数量一多,就会出现卡顿的问题。WordPress文章卡顿可以用一些缓存静态插件来解决,但是还有一个问题就是搜索的时候,文章数量一多,搜索的时候就很慢,有时候直接卡死。其实这主要是WordPress的默认搜索会搜索文章内容和文章标题一起,这样会大量占用CPU及数据库资源导致卡顿。那么,有没有只搜索标题不搜索文章内容的方法?这里,it168资讯就给大家介绍一下WordPress实现自带搜索只搜索标题不搜索内容的方法。

方法很简单,无需新增任何插件,主要将如下代码放到自己的主题的functions.php文件内即可。

// 只搜索文章标题
function wpse_11826_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', 'wpse_11826_search_by_title', 10, 2 );

原创文章,作者:admin,如若转载,请注明出处:https://www.it168.online/webtech/3998/

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注