织梦DedeCMS默认的搜索可以搜索全部栏目或者指定的搜索某一个栏目,不能搜索指定的多个栏目,需要修改后台文件才能实现。

1、在搜索框表单里加个typeid提交过去

例如

<formname="search"action="/plus/search.php">
<inputtype="hidden"name="typeid"value="1,2,3">
</form>

2、打开/plus/search.php找到

$typeid=(isset($typeid)&&is_numeric($typeid))?$typeid:0;

删除这一行后,继续找到

$typeid=intval($typeid);

也删除这一行

3、打开 /include/arc.searchview.class.php 找到

$ksqls[]="typeidIN(".GetSonIds($this->TypeID).")";

改成

//指定了多个栏目时
if(preg_match('#,#',$this->TypeID))
{
$typeids=explode(',',$this->TypeID);
foreach($typeidsas$ttid)
{
$typeidss[]=GetSonIds($ttid);
}
$typeidStr=join(',',$typeidss);
$typeidss=explode(',',$typeidStr);
$typeidssok=array_unique($typeidss);
$typeid=join(',',$typeidssok);
$ksqls[]="arc.typeidIN($typeid)";
}
else
{
$ksqls[]="arc.typeidIN(".GetSonIds($this->TypeID).")";
}

完成,这样就可以搜索指定的多个栏目的文章了。