Dedecms文档关键词维护没用,Dedecms5.6、5.7文章内链的解决方案

网站应用 - 五月 4, 2012 - 来源:单点日志 - No Comments -

Dedecms5.6、5.7文档关键词维护没用,以前自己记得内链设置下就可以了,好久没用dedecms了,今天用了下5.6,发现内链没有生成,查了下好像5.6开始不行了,测试了网上的几种方法都不好用阿,找了终于能用的。

需要注意的是:
dede_keywords,大家如果安装时没有选择moren的dede_必须修改为自己的,不然会出错的。


在Dedecms5.5,5.6下测试有效

一、开打include/arc.archives.class.php 文件

二、查找 function ReplaceKeyword($kw,&$body)

三、往下找到下面这段代码,删除或注释掉
foreach($kws as $k)
{
$k = trim($k);
if($k!=”")
{
if($i > $maxkey)
{
break;
}
$myrow = $this->dsql->GetOne(“select * from dede_keywords where keyword=’$k’ And rpurl<>” “);
if(is_array($myrow))
{
$karr[] = $k;
$GLOBALS['replaced'][$k] = 0;
$kaarr[] = “<a href=”{$myrow["><span style="text-decoration: underline;">$k</span></a>";
}
$i++;
}
}

四、并在注释或删除的代码下面加入以下代码:

$dsql = new DedeSql(false);
$query="select * from dede_keywords where rpurl<>'' ";
$dsql->SetQuery($query);
$dsql->Execute();
while($row = $dsql->GetArray())
{
$key = trim($row['keyword']);
$rul=trim($row['rpurl']);
if($rul!=”")
if(!in_array($key, $kw))
if(!in_array($kw,$key))
if(substr_count($body,$key)<20)
{
$karr[] = $key;
$kaarr[] = “<a href=’$rul’>$key</a>”;
}
}

OK,已经修改完成了。直接复制上面代码,文章内同样的关键词只会出现一个链接。

dede5.7的解决方案:

1.修改系统参数–>核心设置–>关键字替换(是/否)使用本功能会影响HTML生成速度(这里选 是)
2.修改 include/arc.archives.class.php
找到
$body = preg_replace(“/(<a(.*))(>)(.*)(<)(\/a>)/isU”, ‘\\1-]-\\4-[-\\6', $body);
在下方加入以下代码
//设置所有关键词
$dsql12 = new DedeSql();
$query1="select * from dede_keywords";
$dsql12->SetQuery($query1);
$dsql12->Execute();
while($kws = $dsql12->GetArray())
{
再找到:
if($i > $maxkey)
{
break;
}
并删除。
找到
$body = preg_replace("/(^|>)([^<] )(?=<|$)/sUe”, “_highlight(‘\\2′, \$karr, \$kaarr, ‘\\1′)”, $body);
在其上方加上一个
}
3,系统基本参数 》其它选项 》文档内容同一关键词替换次数(0为全部替换): 设为  1(注:data/config.cache.inc.php文件要有写入权限)



无觅相关文章插件,快速提升流量

《Dedecms文档关键词维护没用,Dedecms5.6、5.7文章内链的解决方案》由单点日志原创提供!
转载请注明:http://spoint.babyshoot.cn/archives/2012/05/dedecms56-57-article-within-the-chain.html

No Comments│赶紧发话! »

发表评论

您必须登录后才能发表评论。
8