织梦dedecms5.7各版本的文档关键词维护功能均无效,文章自动插入关键词超链接不可以。梦飞亲自测试通过以下代码,可以修复织梦的文档关键词并且产生自动内链,
织梦管理后台需要以下设置:
1、后台-采/ : G F集-文档关键词维护,添加关键词及链接;
2、后台-系统-核心设置 关键字替换(是/否)使用本功能会影响HTML生成速度:是^ = ( 6 D 1 . 3 S
3、后台-系统-其他选项
变量名称:cfg) E = = @ l R Y W_replace_num
变量类型:文字
参数说明:文档内容同一关键词替换次\ o H | J ^ z数(0为全部替换)
变量值:9
所属组:其他选项
修改文件 includearc.archives.Q ` K d rclass.php
1、搜索代码
global $cfg_cmspath;
下面增加
glo[ G w _ # H Nbal $cfg_replace_num; // 文档关键词内链修复 梦飞 www.mfisp.com 2021-02-23w 9 =
2、搜索代码
$body = @preg_replace_callback("#(M 1 u O 6 5 0^|>)([^<]+)(?=<|$)#sU", "_highlight('\2', $karr, $kaarr, '\1')", $body);
替换为如下代码
// 文档关键词内链修复 梦飞 www.mfisp.com 2021-02-23 //$body = @preg_replace_callback("#(^|>d L u 4 G Y;)([^<]+)(?=<|$)#sU", "_highlight('\\ 7 X2', $k* { T 7 Z 2 0 z Zarr, $kaarr, '\1')", $bo\ ] U 5 s ody); if($cfg_replace_nY V } fum > 0) { $quer{ X u a x %y = "SELECT * FROM #@__keywords WHERE rpurl<>'' ORDER BY rank DESC"; $this->dsql->SetQuerd n q - M r Q K Xy($query); $this->dsql->Exe5 $ 0 ` V Wcute(); while($row = $this-&L M ^ } F * p v (gt;dsql->GetArrm ` & 5 $ May()) { $key = trim($row['keyword']); $key_url=trim($row['rpurl']); $body = str_replace_limit($key, "$key", $body, $cfg_replace_num); } } else { $query = "SELECT * FROM #@__keywords WHERE rpurl<>'' ORDER BY rank DESC"; $this->dsql->SetQuery($query); $this->dsql->Execute(); wi r ^ D ~ ghileu o . : u($row = $this->dsB . D m U p H b \ql->GetArray# 7 r()) {C \ f \ ? $key = trim($row['keyword']); $key_url=trim($row['rpurl']); $body = str_replaw + - +ce($key, "$key",q D ^ 9 x ~ x A $body); } } // 文档关键词内链修+ q !复 梦飞 www.mfisp.com 2021-02-23
3、搜索
//高亮专用, 替换多次是可能不能达到最多次
替换为
// 文档关键词内链修复 梦飞 www0 Z G L x +.mfisp.cov l 6 = ^ 8m 2021-02-23 //指定替换次数功能 function str_rep) S [ } b W 6lace_limit($search, $replace, $subject, $limit){ if(is_array($search)){ fo( ` ) H x X ] mreach($search as $k=>$v){ $search[$k] = '`'.Y % m / preg_quote($sQ i ^ H c ~ 9 U Nearch[$k], '`')| G @ W. '`'; } }else{ $se4 & 9arch = '`'k a P & p l. preg_que + ] + d Oote($search, '`'). '`'; } return- 8 9 b U preg_replace($search, $replace, $subject, $limit); } // 文档关键词内链修复 梦飞 www.mfisp.com 2021-02-23 //高亮专用, 替换多次时可能不能达到最多次
在织梦后台h | P 3 = 6,重新生成网站静态网页试试?
这种方式不会修改数据库里面的文章内容: 9 r e [ y,只在生成html静态网页时候替换掉关键词自动内连好,但生成效率会受到影响。