织梦dedecms自定义字段搜索功能实现教程
很多织梦的站长朋友想要自定义字段搜索功能,但织梦默认又没有这样的功能,所以我们需要自己开发了,下面告诉大家具体的实现方法: 第一步、打开你的数据库,找到名为dede_full_search的数据库表,在里面把你自定义的字段添加进表,例如你的自定义字段为mygo
很多织梦的站长朋友想要自定义字段搜索功能,但织梦默认又没有这样的功能,所以我们需要自己开发了,下面告诉大家具体的实现方法:
第一步、打开你的数据库,找到名为dede_full_search的数据库表,在里面把你自定义的字段添加进表,例如你的自定义字段为mygoods,则添加mygoods进去。
第二步、打开/member/article_add_action.php文件,在里面找到“//更新全站搜索索引”,在下面的一段代码中插入刚才添加的字段,例:“'mygoods'=>$mygoods”,这里说明一下,前面的'mygoods'为你发布文章时添加的自定义字段,后面的为刚才在表dede_full_search中添加的字段(建议在表中添加字段的时候写成跟你之前字定义的字段一样)这里最好写成一样,可以省去很多麻烦
第三步、打开/include/inc_arcsearch_view.php文件,在里面搜索titlekeyword,找到如下代码:
1 |
if ($this->SearchType != "titlekeyword" ){
|
2 |
$kwsqlarr[] = " ying_full_search.title like '%$k%' " ;
|
4 |
$kwsqlarr[] = " ying_full_search.title like '%$k%' " ;
|
5 |
$kwsqlarr[] = " ying_full_search.addinfos like '%$k%' " ;
|
6 |
$kwsqlarr[] = " ying_full_search.keywords like '%$k%' " ;
|
|
分析代码SearchType != "titlekeyword,搜索类型为titilekeyword,即前台搜索下拉框中的智能模糊搜索,$kwsqlarr[] = " ying_full_search.title like '%$k%' ";为搜索full_search表中的title字段,好了,知道了这段代码的作用,我们就知道该如何添加自己的搜索了,下面把我的代码作为例子
1 |
if ($this->SearchType != "goods" ){
|
2 |
$kwsqlarr[] = " ying_full_search.mygoods like '%$k%' " ;
|
3 |
$kwsqlarr[] = " ying_full_search.myexchange like '%$k%' " ;
|
5 |
$kwsqlarr[] = " ying_full_search.myexchange like '%$k%' " ;
|
6 |
$kwsqlarr[] = " ying_full_search.mygoods like '%$k%' " ;
|
|
第四步、修改搜索框代码,代码在哪我就不说了吧,大家都知道在哪,搜索框原代码为
1 |
< select name= "searchtype" id = "searchtype" >
|
2 |
<option value= "titlekeyword" selected>智能模糊搜索</option>
|
3 |
<option value= "title" >仅搜索标题</option>
|
|
这里只需修改上面的代码,修改后的代码为
1 |
< select name= "searchtype" id = "searchtype" >
|
2 |
<option value= "goods" >搜物品</option>
|
|
value="",这填的是第三步中添加的SearchType后面的,即搜索类型,这个你自己定义
第五步、还是打开/include/inc_arcsearch_view.php文件,找到“//处理一些特殊字段”,把你之前的自定义的字段添加进去,这里还是以我的为例子
在下面添加
1 |
$row[ "mygoods" ] = $this->GetRedKeyWord(cn_substr($row[ "mygoods" ],$infolen));
|
|
第六步、最后一步了,打开templets/default/search.htm文件,这里就是搜索页调用的模版,这里要调用只要[field:你自定义的字段/],还是以我的网站为例[field:mygoods/],这样调用就OK,但是要注意一点,假如你2个字段放一起调用中间最好加个空格或者其他符号。
|
原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。