dedecms内链 arc.archives.class.php,织梦dedecms让文章页自动SEO内链不需要插件

{dede:channel type='top' row='10'}

扯远了,说明天的重点“关键字内链”,其实织梦DEDECMS之前考虑过这个问题的,但是有一些BUG。  织梦DEDECMS后台里面 核心->批量维护->文档关键字维护  其实这个当时设计出来的时候就是用来做内链的。

织梦DEDECMS让文章页自动SEO内链 不需要插件

但是你总发觉得它不怎么好用,总会出这样哪样的问题。但是我们只需要修改一部分代码就可以让织梦DEDECMS自动替换关键字了,并且只是文档中只要出现了的都完全替换。

打开 /include/arc.archives.class.php 文件,在修改最后的两个方法,按下面的方法进行修改。

主要修改了ReplaceKeyword里面查询关键字的时候排序的算法,然后注释了一个判断

/**

* 高亮问题修正, 排除alt title 直接的字符替换

*

* @param string $kw

* @param string $body

* @return string

*/

function ReplaceKeyword($kw,&$body)

{

global $cfg_cmspath;

$maxkey = 5;

$kws = explode(",",trim($kw));    //以分好为间隔符

$i=0;

$karr = $kaarr = $GLOBALS['replaced'] = array();

//暂时屏蔽超链接

$body = preg_replace("#(

/*

foreach($kws as $k)

{

$k = trim($k);

if($k!="")

{

if($i > $maxkey)

{

break;

}

$myrow = $this->dsql->GetOne("SELECT * FROM idea_keywords WHERE keyword='$k' AND rpurl<>'' ");

if(is_array($myrow))

{

$karr[] = $k;

$GLOBALS['replaced'][$k] = 0;

$kaarr[] = "";

}

$i++;

}

}

*/

$query = "SELECT * FROM idea_keywords WHERE rpurl<>'' ORDER BY keyword DESC";

$this->dsql->SetQuery($query);

$this->dsql->Execute();

while($row = $this->dsql->GetArray())

{

$key = trim($row['keyword']);

$key_url=trim($row['rpurl']);

$karr[] = $key;

$kaarr[] = "";

}

// 这里可能会有错误

$body = @preg_replace("#(^|>)([^

//恢复超链接

$body = preg_replace("#(

{/dede:channel}

以上就是织梦dedecms让文章页自动SEO内链不需要插件 的开发技巧介绍,还有其他的关于织梦开发的问题,欢迎访问 翔骏博客 继续学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值