• WAP手机版 RSS订阅 加入收藏  设为首页
技术教程

dedecms关键字不需要在keyword中设置实现內链

时间:2013/12/9 11:37:13   作者:新站长   来源:新站长网   阅读:645   评论:0
内容摘要:dedecms关键词內连维护默认是需要和发布文章时匹配通过keyword中设置的关键字作为条件替换来完成的,今天分享的是不通过keyword中设置的关键字作为条件替换,而是在数据库中所有的词中索引匹配的织梦仿站方法:测试环境为:DEDECMSv5.7第一步:/include...

dedecms关键词內连维护默认是需要和发布文章时匹配通过keyword中设置的关键字作为条件替换来完成的,今天分享的是不通过keyword中设置的关键字作为条件替换,而是在数据库中所有的词中索引匹配的织梦仿站方法:
测试环境为:DEDECMS v5.7
第一步:/include/arc.archives.class.php(DEDE v5.7) line 231:if($arr['type']=='htmltext' && $GLOBALS['cfg_keyword_replace']=='Y' && !empty($this->Fields['keywords']))
改为:if($arr['type']=='htmltext' && $GLOBALS['cfg_keyword_replace']=='Y')


第二步:/include/arc.archives.class.php(DEDE v5.7)中的 ReplaceKeyword 方法改成:


function ReplaceKeyword($kw,&$body)
{
global $cfg_cmspath;
$maxkey = 3;
$kws = explode(",",trim($kw)); //以分好为间隔符
$i=0;
$karr = $kaarr = $GLOBALS['replaced'] = array();

//暂时屏蔽超链接
$body = preg_replace("#(<a(.*))(>)(.*)(<)(\/a>)#isU", '\\1-]-\\4-[-\\6', $body);

/*
foreach($kws as $k)
{
$k = trim($k);
if($k!="")
{
if($i > $maxkey)
{
break;
}
$myrow = $this->dsql->GetOne("SELECT * FROM cn_keywords WHERE keyword='$k' AND rpurl<>'' ");
if(is_array($myrow))
{
$karr[] = $k;
$GLOBALS['replaced'][$k] = 0;
$kaarr[] = "<a href='{$myrow['rpurl']}'><u>$k</u></a>";
}
$i++;
}
}
*/
$query = "SELECT * FROM cn_keywords WHERE rpurl<>'' ORDER BY rank DESC";
$this->dsql->SetQuery($query);
$this->dsql->Execute();
$j = 0;
while($row = $this->dsql->GetArray())
{
$action = 1;
if($j >= $maxkey) break;
$key = trim($row['keyword']);

 


标签:function DEDECMS keyword dedecms include 
相关评论
诚信网站 备案信息 网警110 不良信息举报 网络安全监察 QQ站长联盟安全认证 360安全认证网站
冀ICP备13003921号-1