在Dedecms(DedeCMS)中,如果文档中的关键词出现重复链接,可以通过以下几种方法来解决:
修改代码实现只给第一个出现的关键词加链接
1、备份文件:在进行任何修改之前,请务必先备份涉及的文件,以防出现问题时能够恢复。
2、找到并修改arc.archives.class.php文件:
打开目录include中的arc.archives.class.php文件。
找到function ReplaceKeyword($kw,&$body)函数,这个函数负责替换文章中的关键词为链接形式。
在这个函数中找到如下代码段:
global $cfg_replace_num; if($cfg_replace_num > 0) { $string = preg_replace("/".preg_quote($words)."/", $result, $string, $cfg_replace_num); if(strpos($string, $words) !== false) { $GLOBALS['replaced'][$words] = 1; } } else { $string = str_replace($words, $result, $string); }
将上述代码修改为:
global $cfg_replace_num; if($cfg_replace_num > 0 && !isset($GLOBALS['replaced'][$words])) { $string = preg_replace("/".preg_quote($words)."/", $result, $string, $cfg_replace_num); if(strpos($string, $words) !== false) { $GLOBALS['replaced'][$words] = 1; } } else { $string = str_replace($words, $result, $string); }
保存文件并重新生成文章内容,这样就能确保每个关键词只在第一次出现时被替换为链接。
通过后台设置控制关键词替换次数
1、进入DedeCMS后台:登录到你的DedeCMS管理后台。
2、系统基本参数设置:
依次点击“系统” > “系统基本参数”。
在“其他选项”的最后一行,找到“文档内容同一关键词替换次数”设置项。
将该设置项的值从0改为1,这样系统就会只替换每个关键词的第一次出现。
3、维护关键词和链接:
依次点击“核心” > “批量维护” > “文档关键词维护”。
添加或编辑你需要的关键词及其对应的链接地址。
完成设置后,重新生成文章,查看效果。
FAQs
1、为什么修改后的代码没有生效?
解答:可能的原因包括:未备份和恢复文件、修改的文件路径错误、缓存未清除等,请确保你正确修改了arc.archives.class.php文件,并且在后台清除了缓存,如果问题依旧存在,请检查是否有其他插件或设置影响了关键词替换功能。
2、如何确保关键词替换顺序正确?
解答:在DedeCMS后台的“文档关键词维护”中,可以通过设置关键词的“频率”来控制其优先级,频率数值越大,关键词的优先级越高,越容易被优先替换,还可以通过修改代码,使用uasort()
函数对关键词按长度进行排序,确保较长的关键词优先被替换。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1227827.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复