建站教程

织梦dedecms5.7文档关键词自动内链修复,文章自动插入关键词超链接

2021-02-23
0
织梦dedecms5.7各版本的文档关键词维护功能均无效,文章自动插入关键词超链接不可以。梦飞亲自测试通过以下代码,可以修复织梦的文档关键词并且产生自动内链,
 
织梦管理后台需要以下设置:
1、后台-采集-文档关键词维护 添加关键词及链接;
2、后台-系统-核心设置 关键字替换(是/否)使用本功能会影响HTML生成速度:是
3、后台-系统-其他选项 文档内容同一关键词替换次数(0为全部替换): 设置一个数值,建议为2。
 
修改文件 includerc.archives.class.php
1、搜索代码 global $cfg_cmspath;
下面增加
global $cfg_replace_num; // 文档关键词内链修复 梦飞 www.mfisp.com  2021-02-23
 
2、搜索代码  $body = @preg_replace_callback("#(^|>)([^<]+)(?=<|$)#sU", "_highlight('\2', $karr, $kaarr, '\1')", $body);
替换为如下代码
// 文档关键词内链修复 梦飞 www.mfisp.com  2021-02-23
//$body = @preg_replace_callback("#(^|>)([^<]+)(?=<|$)#sU", "_highlight('\2', $karr, $kaarr, '\1')", $body);
if($cfg_replace_num > 0)
{
$query = "SELECT * FROM sky_keywords WHERE rpurl<>'' ORDER BY rank DESC";
$this->dsql->SetQuery($query);
$this->dsql->Execute();
while($row = $this->dsql->GetArray())
{
$key = trim($row['keyword']);
$key_url=trim($row['rpurl']);
$body = str_replace_limit($key, "<a href='$key_url' target='_blank'><u>$key</u></a>", $body, $cfg_replace_num);
}
}
else
{
$query = "SELECT * FROM sky_keywords WHERE rpurl<>'' ORDER BY rank DESC";
$this->dsql->SetQuery($query);
$this->dsql->Execute();
while($row = $this->dsql->GetArray())
{
$key = trim($row['keyword']);
$key_url=trim($row['rpurl']);
$body = str_replace($key, "<a href='$key_url' target='_blank'><u>$key</u></a>", $body);
}
}
// 文档关键词内链修复 梦飞 www.mfisp.com  2021-02-23
 
3、搜索     //高亮专用, 替换多次是可能不能达到最多次
替换为 
// 文档关键词内链修复 梦飞 www.mfisp.com  2021-02-23
//指定替换次数功能  
function str_replace_limit($search, $replace, $subject, $limit){ 
  if(is_array($search)){ 
    foreach($search as $k=>$v){ 
      $search[$k] = '`'. preg_quote($search[$k], '`'). '`'; 
    } 
  }else{ 
    $search = '`'. preg_quote($search, '`'). '`'; 
  } 
  return preg_replace($search, $replace, $subject, $limit); 
}
// 文档关键词内链修复 梦飞 www.mfisp.com  2021-02-23
//高亮专用, 替换多次时可能不能达到最多次
部分文章来源与网络,若有侵权请联系站长删除!

推荐产品