本最模板分享的是Dedecms一个非常实用的技巧,用过dede的人都知道,dede文章内链生成需要在后台添加文章的时候在关键词处填上想被链接的词,同时还要在关键词维护中有该关键词。
由于一篇文章关键词数量有限,且文章包含的词众多,除了该篇文章主要的关键词之外,对于其他页面有所关系的词最好也能链上,这点,最模板的做得比较好。
那修改一个地方,可以实现当文章中出现关键词维护中的词的时候,生成的时候就会自动链接。
修改方式如下:
找到include/arc.archives.class 文件下的:ReplaceKeyword 函数。
将这部分改成以下代码:
function ReplaceKeyword($kw,&$body) { global $cfg_CMSpath; $maxkey = 5; //替换次数 $kws = explode(”,”,trim($kw)); //以分好为间隔符 $i=0; $karr = $kaarr = $GLOBALS['replaced'] = array(); //暂时屏蔽超链接 $body = preg_replace(”/()(.*)(<)(\/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 dede_keywords where keyword='$k' And rpurl<>'' "); if(is_array($myrow))*/ $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)<5) { $karr[] = $key; $kaarr[] = “<a href=’$rul’><u>$key</u></a>”; } } { $karr[] = $k; $GLOBALS['replaced'][$k] = 0; $kaarr[] = “<a target=\”_blank\” href=\”{$myrow['rpurl']}\”>$k</a>”; } $i++; } } $body = preg_replace(”/(^|>)([^<]+)(?=<|$)/sUe”,“_highlight(’\2′,$karr,$kaarr,‘\1′)”,$body); //恢复超链接 $body = preg_replace(”/()/isU”,‘\1>\3<\4′,$body); return $body; } }//End Archives |
织梦58推荐大家使用
上一篇:DEDECMS首页调用商品价格
下一篇:dedecms列表页分页效果变形的问题解决
总结以上是内存溢出为你收集整理的dedecms站内链接(描文本)的增强与优化全部内容,希望文章能够帮你解决dedecms站内链接(描文本)的增强与优化所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)