首先我們找到/include/ 文件夾里面的arc.searchview.class.php,大約在300行和470行左右有兩個sql語句,在后面加上條件一個判斷就可以了$cquery = "Select * From `dede_archives` arc where arc.typeid not in (1,2,3...) and {$this->AddSql}";//搜索 $query = "Select arc.*,act.typedir,act.typename,act.isdefault,act.defaultname,act.namerule,act.namerule2,act.ispart,act.moresite,act.siteurl,act.sitepathfrom `dede_archives` arc left join `dede_arctype` act on arc.typeid=act.idwhere act.id not in (4,5,,6....) and {$this->AddSql} $ordersql limit $limitstart,$row";
把sql語句換成這兩句,括號里面的是你不搜索欄目的id在做企業網站優化(或是說用戶體驗時)大家一定會碰到這個問題!在做企業站時,大家一定都會有,基本企業資料,聯系我們以及產品信息。當產品信息達到一定量時就會用到搜索來方便用戶查詢??墒莇edecms模板沒有這個功能。只有全站和google搜索。而我們要的只是搜索指定的幾個欄目。如我只要用戶搜索我的產品。這是企業最想要的。我的網站就是要把我的產品給客戶看再產生訂單。這里我就不給大家繞,把代碼給大家公布一下。不過只針對一個欄目。不過我想當然我沒試過。
大家可以把別的想要給搜到的欄目移動到這個頂級欄目不就可以了嗎?在plus/search.php94行前就是$sp = new SearchView($typeid,$keyword,$orderby,$channeltype,$searchtype,$starttime,$pagesize,$kwtype,$mid);前加入$typeid=xxx;xxx就是指定欄目的id這樣就可以實現搜索指定的欄目ID了。如果是要搜索某個內容模型中的文章,其他模型都不參與搜索,那么只需打開/plus/search.ph文件,在第十二行左右有如下代碼其中$channeltype就是指定搜索的內容模型,將最后的數字修改為對應的內容模型即可.$channeltype = (isset($channeltype) && is_numeric($channeltype)) ? $channeltype :6;