在构建双语网站时,尤其是使用DEDECMS(织梦内容管理系统)进行中英文版搜索功能开发时,常常会遇到搜索结果出现双语混搭的问题。为了实现中文站只搜索中文内容、英文站只搜索英文内容的功能,可以通过以下步骤来优化和调整DEDECMS的搜索机制。

首先,我们需要为英文站点创建一个独立的搜索模板,确保其与中文站点的搜索逻辑分开运行。以下是具体的操作步骤:


1. 复制并重命名搜索文件

进入DEDECMS的“plus”目录,找到“search.php”文件,并将其复制一份,然后将副本更名为“searche.php”。这个新的文件将作为英文站点的搜索入口。


2. 修改新搜索文件的引用路径

编辑“searche.php”文件,找到以下代码行:


require_once(DEDEINC."/arc.searchview.class.php");
    

将其替换为:


require_once(DEDEINC."/arc.searchviewen.class.php");
    

3. 创建自定义搜索类文件

从“include”目录下复制“arc.searchview.class.php”文件,并将其重命名为“arc.searchviewen.class.php”。接着,编辑这个新文件,找到以下代码:


$tempfile = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir']."/".$GLOBALS['cfg_df_style']."/search.htm";
    

将其修改为:


$tempfile = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir']."/".$GLOBALS['cfg_df_style']."/search_en.htm";
    

4. 创建英文站点的搜索模板

在模板文件夹中找到“search.htm”,将其复制并重命名为“search_en.htm”。接下来,根据英文站点的需求对“search_en.htm”进行自定义修改,确保其样式和布局符合英文页面的设计风格。


5. 更新英文站点的搜索表单

最后,在英文站点的相关页面中,更新搜索表单的代码。例如:


其中,“action”属性指向了我们之前创建的“searche.php”文件,而“name="typeid" value="26"”则用于指定搜索的栏目ID。


通过以上步骤,您可以成功实现DEDECMS双语网站的独立搜索功能,避免中英文内容混杂的问题,从而提升用户体验和搜索引擎优化效果。