在使用Dedecms进行网站开发时,有时需要对搜索功能进行定制。例如,我们可能希望搜索结果只展示商品模型的内容,而不包括文章模型的内容。网上虽然有许多教程,但大多步骤繁琐且效果不佳。经过研究发现,只需修改一处代码即可实现这一需求。

首先,打开Dedecms的/plus/search.php文件。在这个文件中,大约第17行左右,可以看到以下代码:


$pagesize = (isset($pagesize) && is_numeric($pagesize)) ? $pagesize : 24;
$typeid = (isset($typeid) && is_numeric($typeid)) ? $typeid : 0;
$channeltype = (isset($channeltype) && is_numeric($channeltype)) ? $channeltype : 6;
$kwtype = (isset($kwtype) && is_numeric($kwtype)) ? $kwtype : 0;
$mid = (isset($mid) && is_numeric($mid)) ? $mid : 0;

在这段代码中,变量$channeltype用于指定搜索的内容模型。默认情况下,它的值为6,表示系统会根据此ID来决定搜索哪些内容模型。如果想要仅搜索商品模型,就需要将这里的数字改为对应的商品模型ID。

如何找到商品模型的ID呢?登录到Dedecms后台,进入“核心”->“频道模型”->“内容模型管理”。在这里可以查看所有已有的内容模型及其对应的ID。假设商品模型的ID为8,则将上述代码中的$channeltype : 6;改为$channeltype : 8;即可。

完成修改后保存文件,并清空浏览器缓存,再次测试搜索功能。此时,搜索结果将只展示商品模型的内容,而不会包含其他类型(如文章模型)的内容。

需要注意的是,在进行此类修改前,建议备份原始文件,以便在出现问题时能够快速恢复。此外,如果您不熟悉PHP代码或Dedecms的结构,最好寻求专业人士的帮助,以避免对网站造成不必要的损害。

通过以上简单的方法,您可以轻松实现Dedecms搜索结果的定制化,从而提升用户体验并满足特定业务需求。