dedecms站内链接(描文本)的增强与优化

分享的是 dede cms一个非常实用的技巧,用过dede的人都知道,dede文章内链生成需要在后台添加文章的时候在关键词处填上想被链接的词,同时还要在关键词维护中有该关键词。 由于一篇文章关键词数量有限,且文章包含的词众多,除了该篇文章主要的关键词之外,

分享的是dedecms一个非常实用的技巧,用过dede的人都知道,dede文章内链生成需要在后台添加文章的时候在关键词处填上想被链接的词,同时还要在关键词维护中有该关键词。

 

由于一篇文章关键词数量有限,且文章包含的词众多,除了该篇文章主要的关键词之外,对于其他页面有所关系的词最好也能链上,这点,盗贼的做得比较好。

那修改一个地方,可以实现当文章中出现关键词维护中的词的时候,生成的时候就会自动链接。
修改方式如下:

找到include/arc.archives.class 文件下的:ReplaceKeyword 函数。

将这部分改成以下代码:

 


  1. function ReplaceKeyword($kw,&$body)  
  2. {  
  3. global $cfg_cmspath;  
  4. $maxkey = 5; //替换次数  
  5. $kws = explode(”,”,trim($kw)); //以分好为间隔符  
  6. $i=0;  
  7. $karr = $kaarr = $GLOBALS['replaced'] = array();  
  8. //暂时屏蔽超链接  
  9. $body = preg_replace(”/()(.*)(<)(\/a>)/isU”, ‘\\1-]-\\4-[-\\6', $body);  
  10. foreach($kws as $k)  
  11. {  
  12. $k = trim($k);  
  13. if($k!="")  
  14. {  
  15. /* if($i > $maxkey)  
  16.  
  17. break;  
  18.  
  19. $myrow = $this->dsql->GetOne("select * from dede_keywords where keyword='$k' And rpurl<>'' ");  
  20. if(is_array($myrow))*/  
  21. $dsql = new DedeSql(false);  
  22. $query="select * from dede_keywords where rpurl<>'' ";  
  23. $dsql->SetQuery($query);  
  24. $dsql->Execute();  
  25. while($row = $dsql->GetArray())  
  26. {  
  27. $key = trim($row['keyword']);  
  28. $rul=trim($row['rpurl']);  
  29. if($rul!=”")  
  30. if(!in_array($key$kw))  
  31. if(!in_array($kw,$key))  
  32. if(substr_count($body,$key)<5)  
  33. {  
  34. $karr[] = $key;  
  35. $kaarr[] = “<a href=’$rul’><u>$key</u></a>”;  
  36. }  
  37. }  
  38. {  
  39. $karr[] = $k;  
  40. $GLOBALS['replaced'][$k] = 0;  
  41. $kaarr[] = “<a target=\”_blank\” href=\”{$myrow['rpurl']}\”>$k</a>”;  
  42. }  
  43. $i++;  
  44. }  
  45. }  
  46. $body = preg_replace(”/(^|>)([^<]+)(?=<|$)/sUe”, “_highlight(’\\2′, \$karr, \$kaarr, ‘\\1′)”, $body);  
  47. //恢复超链接  
  48. $body = preg_replace(”/()/isU”, ‘\\1>\\3<\\4′, $body);  
  49. return $body;  
  50. }  
  51. }//End Archives  
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

这篇文章给大家分享的是有关织梦dedecms调用当前栏目文章数的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。 做模板时,经常需要为每个栏目加上此栏目的文章数。和大家分享下实现的方法,此方法适合5.6及5.7、5.7sp1其它
现在许多网站使用了SSL技术,网站采用https链接,我们在复制https链接网站的内容,发现图片无法本地化,那么我们想要将这些图片本地化,要怎么操作呢? 第一步: 找到dede/inc/inc_archives_functions.php (注:前边红色的dede目录是您的后台目录) 定位到
最终实现效果如下图:内容生成之后会自动加上本篇文章的tags标签(文档生成时候自动加入,编辑器中内容实际没加入,更有利) 实现教程 1、后台-系统-核心设置-关键字替换,选择【是】 2、后台-系统-其他选项-关键词替换次数,填【1】或者【0】 1:表示文档内
我们传图集后需要对图片进行删除,但是系统提示已删除,实际还保存在网站目录里,这个要怎么解决呢? 打开 \dede\swfupload.php 找到 if(!file_exists($imgfile) !is_dir($imgfile) preg_match(#^.$cfg_medias_dir.#, $imgfile)) 替换成: if(file_exists($i
织梦tags标签只能写12个字符也就是6个汉字,多出的字符就会自动截断,或者直接被去除,不单单需要通过修改数据库字段长度,还要修改程序文件来改变tags字数限制,tags标签默认长度。 1、修改tags数据表字段长度 后台-系统-SQL命令行工具-执行下面2句语句(一起
大家都知道,Discuz程序在发文章时有个【隐藏】功能,可以限制这个隐藏内容供某些级别的会员查看。 在织梦模板中,做些改动,也是可以实现的。例如:电话号码,下载地址等等。 前提是开启会员功能,已经有了自定义字段。 一、建立文件 ajax_loginsta_c.php: