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

WordPress

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

 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

虾皮路版权所有,未经允许不得转载:虾皮路 » WordPress实现自带搜索只搜索标题不搜索文章内容的方法

分享到: 更多 (0)

评论 抢沙发

  • QQ号
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活