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) 更新不易,打赏吧

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

支付宝扫一扫赞助

微信钱包扫描赞助

除特别注明外,本站所有文章均基于CC-BY-NC-SA 4.0原创,转载请注明出处。
文章名称:《WordPress实现自带搜索只搜索标题不搜索文章内容的方法》
文章链接:https://www.xiapilu.com/web/web-tutorial/wordpress-search-title-only.html
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录   注册

切换注册

登录

忘记密码 ?

切换登录

注册

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