在构建双语网站时,尤其是使用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双语网站的独立搜索功能,避免中英文内容混杂的问题,从而提升用户体验和搜索引擎优化效果。