增强 WordpPress 搜索结果的相关性准确度

WordpPress 自带的搜索功能其实比较简单,搜索的结果就是包含搜索词的文章、页面,按照时间发布顺序排序,下面,我们将介绍如何增强 wordpress 的搜索,让搜索结果更加精准。

1.增加关联性

  1.     if(is_search()){
  2.     add_filter('posts_orderby_request', 'search_orderby_filter');
  3.     }
  4.     function search_orderby_filter($orderby = ''){
  5.         global $wpdb;
  6.         $keyword = $wpdb->prepare($_REQUEST['s']);
  7.         return "((CASE WHEN {$wpdb->posts}.post_title LIKE '%{$keyword}%' THEN 2 ELSE 0 END) + (CASE WHEN {$wpdb->posts}.post_content LIKE '%{$keyword}%' THEN 1 ELSE 0 END)) DESC,
  8.     {$wpdb->posts}.post_modified DESC, {$wpdb->posts}.ID ASC";
  9.     }

只搜索文章

只搜索文章的标题,将下面的代码添加到主题的 functions.php 文件即可:

  1.     /**
  2.      * 让 WordPress 只搜索文章的标题
  3.      */
  4.     function __search_by_title_only( $search, &$wp_query )
  5.     {
  6.         global $wpdb;
  7.         if ( emptyempty( $search ) )
  8.             return $search; // skip processing - no search term in query
  9.         $q = $wp_query->query_vars;
  10.         $n = ! emptyempty( $q['exact'] ) ? '' : '%';
  11.         $search =
  12.         $searchand = '';
  13.         foreach ( (array) $q['search_terms'] as $term ) {
  14.             $term = esc_sql( like_escape( $term ) );
  15.             $search .= "{$searchand}($wpdb->posts.post_title LIKE '{$n}{$term}{$n}')";
  16.             $searchand = ' AND ';
  17.         }
  18.         if ( ! emptyempty( $search ) ) {
  19.             $search = " AND ({$search}) ";
  20.             if ( ! is_user_logged_in() )
  21.                 $search .= " AND ($wpdb->posts.post_password = '') ";
  22.         }
  23.         return $search;
  24.     }
  25.     add_filter( 'posts_search', '__search_by_title_only', 500, 2 );

选择分类搜索:

  1.     <form id=”searchform” name=”searchform” method=”get” action=”<?php bloginfo(‘home’); ?>/” >
  2.     <ul>
  3.     <li>
  4.     <p>
  5.     <?php $select = wp_dropdown_categories(class=search_select&show_option_all=全站搜索& amp;orderby=name&hierarchical=0&selected=-1&depth=1);?>
  6.     </p>
  7.     </li>
  8.     <li>
  9.     <input type=”text” name=”s” id=”s” maxlength=”34″ value=””/>
  10.     </li>
  11.     <li>
  12.     <input type=”image” value=”” src=”<?php bloginfo(‘template_url’); ?>/img/search.gif”/>
  13.     </li>
  14.     </ul>
  15.     </form>

显示出的效果类似下图功能,可选择全站搜索,或者具体的分类搜索,搜索的结果更加精准!
增强 WordpPress 搜索结果的相关性准确度-云模板具体样式得自己修改了。

多重选项框搜索

这种方法更加强大,可以选择多个分类,并搜索分类中的文章,精确度更好,不过使用这种方法有一定的固定性,你需要自己写好选项框中的分类 id:
增强 WordpPress 搜索结果的相关性准确度-云模板将你的默认的 searchform.php 修改为以下代码:

  1.     <div>
  2.     <form id=”index_search” name=”index_search” method=”get” action=”<?php bloginfo(‘home’); ?>/”>
  3.     <p><input type=”text” name=”s” id=”s” value=””/> <input type=”submit” value=” 搜 索 ” /></p>
  4.     <p>
  5.     <label for=”s_type5″ style=”width:50px”><input type=”radio” name=”cat” id=”cat” value=”all” checked>全站</label>
  6.     <label for=”s_type1″ style=”width:50px”><input type=”radio” name=”cat” id=”cat” value=”4″ checked>主题</label>
  7.     <label for=”s_type2″ style=”width:50px”><input type=”radio” name=”cat” id=”cat” value=”6″>插件</label>
  8.     <label for=”s_type3″ style=”width:50px”><input type=”radio” name=”cat” id=”cat” value=”3″>主机</label>
  9.     <label for=”s_type4″ style=”width:50px”><input type=”radio” name=”cat” id=”cat” value=”10″>经验</label>
  10.     </p>
  11.     </form>
  12.     </div>

现在,你的 wordpress 搜索是不是强大了许多呢? 如果不想要使用 wordpress 的搜索,还可以内置谷歌搜索、百度站内搜索等方式,这些方式可以参阅谷歌百度的官网。

原创文章,作者:DavidWu,如若转载,请注明出处:https://www.davidwu.net/archives/76633

WordPress安全防护插件
服务项目 服务内容 收费标准(元)
开发定制 WordPress主题/插件开发定制 (以最终需求为准)
主题/插件汉化 汉化团队WordPress主题/插件,翻译率95% (以标的主题/插件的句子数量为准)
服务器环境配置 基于您现有服务器,搭建配置网站运行环境,结合我们多年来实战经验,可完美支持WordPress等PHP程序运行,并配置伪静态规则、优化目录权限等问题。服务器我们强烈推荐使用Linux系统。 100元/次
网站托管 若贵站目前尚无技术人员,无法完成服务器环境配置,可选择我们的网站托管服务,直接交付正常运行的WordPress站点,并且无需担心服务器的后续维护工作,一切都由我们来帮您完成。 标配套餐:1000元/年/站点 高配套餐:联系客服获取
网站加速优化 从服务器后端配置优化到WordPress数据库缓存、前端页面缓存、JS和CSS压缩合并,全方位优化网站加载速度,实现秒开。(此服务仅针对(云)服务器/VPS) 500元/次(仅站内优化200元/次)
主题配置 本站所有主题均支持,可快速实现,若有任何问题可以咨询客服解决,若您希望我们提供配置服务,可选购此服务。 英文主题安装 60元/次 汉化主题安装 30元/次
HTTPS配置 HTTPS已经不断普及,并且有着更高的安全性以及SEO上的优待。该服务收取的为服务费,SSL证书产生的费用请自行承担。 100元/次
网站搬家 迁移网站所有文件和数据库信息、网站相关配置的调整、以及迁移中的疑难问题故障排除。 标准收费:500元/次 若网站数据量大,需协商
网站运维 提供整站的运维服务,保证网站正常运行。包含:网站故障定位及排除、网站数据备份和恢复、网站攻击及木马等问题的处理等 标准收费:2000元/年 IP 5000以上需协商

发表评论

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

51建站客服微信二维码
点击这里购买