各地市:
郑州网站建设 洛阳网站建设 开封网站建设 安阳网站建设 新乡网站建设 濮阳网站建设 焦作网站建设 鹤壁网站建设 三门峡网站建设 商丘网站建设 许昌网站建设 漯河网站建设 平顶山网站建设 驻马店网站建设 周口网站建设 南阳网站建设 信阳网站建设 济源网站建设 二七区网站建设 中原区网站建设 管城区网站建设 惠济区网站建设 金水区网站建设 上街区网站建设 巩义市网站建设 新密市网站建设 登封市网站建设 荥阳市网站建设 中牟县网站建设 经开区网站建设 高新区网站建设 涧西区网站建设 西工区网站建设 老城区网站建设 瀍河回族区网站建设 洛龙区网站建设 吉利区网站建设 偃师市网站建设 孟津县网站建设 新安县网站建设 洛宁县网站建设 宜阳县网站建设 伊川县网站建设 嵩县网站建设 栾川县网站建设 汝阳县网站建设 杞县网站建设 兰考县网站建设 通许县网站建设 尉氏县网站建设 开封县网站建设 金明区网站建设 顺河回族区网站建设 龙亭区网站建设 鼓楼区网站建设 禹王台区网站建设 安阳县网站建设 林州市网站建设 内黄县网站建设 汤阴县网站建设 滑县网站建设 龙安区网站建设 殷都区网站建设 文峰区网站建设 北关区网站建设 辉县市网站建设 卫辉市网站建设 新乡县网站建设 获嘉县网站建设 原阳县网站建设 延津县网站建设 封丘县网站建设 长垣县网站建设 卫滨区网站建设 红旗区网站建设 牧野区网站建设 凤泉区网站建设 华龙区网站建设 清丰县网站建设 南乐县网站建设 濮阳县网站建设 莘县网站建设 范县网站建设 台前县网站建设
当前位置: 主页 > 建站知识 > 技术支持 > 博客cms >

wordpress搜索功能怎么才能增强

发布时间:2017-05-11 22:29 | 发布者:往流科技 | 浏览次数:

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

WordPress本身的搜索结果是按照发布时间排序的,这样的搜索结果的相关性并不强,应该让搜索结果按照内容相关性排序,而不是按照时间或者 ID,所以我们可以在当前主题的 functions.php 添加如下代码来增强 WordPress 搜索的相关性:

if(is_search()){add_filter('posts_orderby_request',?'search_orderby_filter');}function?search_orderby_filter($orderby?=?''){????global?$wpdb;????$keyword?=?$wpdb->prepare($_REQUEST['s']);????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,{$wpdb->posts}.post_modified?DESC,?{$wpdb->posts}.ID?ASC";}

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

/**?*?让?WordPress?只搜索文章的标题?*/function?__search_by_title_only(?$search,?&$wp_query?){????global?$wpdb;????if?(?emptyempty(?$search?)?)????????return?$search;?//?skip?processing?-?no?search?term?in?query????$q?=?$wp_query->query_vars;????$n?=?!?emptyempty(?$q['exact']?)???''?:?'%';????$search?=????$searchand?=?'';????foreach?(?(array)?$q['search_terms']?as?$term?)?{????????$term?=?esc_sql(?like_escape(?$term?)?);????????$search?.=?"{$searchand}($wpdb->posts.post_title?LIKE?'{$n}{$term}{$n}')";????????$searchand?=?'?AND?';????}????if?(?!?emptyempty(?$search?)?)?{????????$search?=?"?AND?({$search})?";????????if?(?!?is_user_logged_in()?)????????????$search?.=?"?AND?($wpdb->posts.post_password?=?'')?";????}????return?$search;}add_filter(?'posts_search',?'__search_by_title_only',?500,?2?);

选择分类搜索文章:

将默认的searchform.php修改为以下代码:

<form?id=”searchform”?name=”searchform”?method=”get”?action=”<?php?bloginfo(‘home’);??>/”?><ul><li><p><?php?$select?=?wp_dropdown_categories(‘class=search_select&show_option_all=全站搜索&?amp;orderby=name&hierarchical=0&selected=-1&depth=1′);?></p></li><li><input?type=”text”?name=”s”?id=”s”?maxlength=”34″?value=””/></li><li><input?type=”image”?value=””?src=”<?php?bloginfo(‘template_url’);??>/img/search.gif”/></li></ul></form>

可选择全站搜索,或者具体的分类搜索,搜索的结果更加精准!

具体样式得自己修改了

多重选项框搜索

这种方法更加强大,可以选择多个分类,并搜索分类中的文章,精确度更好,不过使用这种方法有一定的固定性,你需要自己写好选项框中的分类id:

将你的默认的searchform.php修改为以下代码:

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

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