不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
DedeCMS V5.7 SP1文档关键词频率研究与测试
编辑:dnawo 日期:2011-12-29
在DedeCMS V5.7 SP1后台"核心→批量维护"下边有个文档关键词维护,它允许添加一些关键词及其对应的链接网址,当发布的文章内容中包含这些关键词时,程序就会给关键词加上文本链接[1],这一功能在做站内锚文本时非常有用:

但其中有个频率选项,一直不太明白是什么意思,经一番测试后发现,频率表示的是关键词的优先级,数值大越大,则优先级越高,这个关键词就优先被查找和替换。比如有A和B两个关键词,A的频率为1,B的频率为2,那么在生成文章页面时,关键词B会优先加上文本链接,然后再是A。
但这有什么用呢?比如关键词A和B,哪个先哪个后对最终生成的页面而言不还是一样么?是的,当两个关键词之间不存在在包含关系时,设置频率是没有意义的,而当两关键词存在包含关系时,频率的意义就体现出来了,比如"木子屋"和"木子"这两个关键词,后者是前者的一部分,这会怎么替换呢?如上图所示,两个关键词的频率一样,所以关键词将按添加的先后顺序进行替换,先替换木子屋,再替换木子,最终页面的代码为:
这代码显然有问题,如果想替换掉关键词木子,而不替换木子屋应怎么设置呢?只需设置木子的频率比木子屋的大即可,比如设置木子的频率为2[2],则生成的页面代码为:
如果想替换掉关键词木子屋,而不替换木子又应怎么设置呢?抱歉,目前程序无法这样实现,因为所有关键词最终都会搜索一次,所以不管如何设置频率,短的关键词总能被替换,算是一种缺陷吧。
补充说明
[1].关键字替换开关需处于打开状态,生成文章页面时关键词才能被替换,开关位置:系统→系统设置→系统基本参数→核心设置→关键字替换(是/否)使用本功能会影响HTML生成速度。另外,DedeCMS还很人性化的增加了一个参数,它可以设置同一篇文章中同一个关键词替换的次数,参数位置:系统→系统设置→系统基本参数→其它选项→文档内容同一关键词替换次数(0为全部替换),这样的好处是能防止文章中站内锚文本出现次数过多。
[2].DedeCMS V5.7 SP1有个bug,关键词添加成功后,可以修改链接网址、禁用和删除关键词,但就是不能修改关键词频率,bug修正方法:
①.打开dede\templets\article_keywords_main.htm,找到如下代码:
修改如下:(红色新增)
②.打开dede/article_keywords_main.php,找到如下代码:
紧接其后加入下边代码:
保存后就可以在后台修改关键词频率了

但其中有个频率选项,一直不太明白是什么意思,经一番测试后发现,频率表示的是关键词的优先级,数值大越大,则优先级越高,这个关键词就优先被查找和替换。比如有A和B两个关键词,A的频率为1,B的频率为2,那么在生成文章页面时,关键词B会优先加上文本链接,然后再是A。
但这有什么用呢?比如关键词A和B,哪个先哪个后对最终生成的页面而言不还是一样么?是的,当两个关键词之间不存在在包含关系时,设置频率是没有意义的,而当两关键词存在包含关系时,频率的意义就体现出来了,比如"木子屋"和"木子"这两个关键词,后者是前者的一部分,这会怎么替换呢?如上图所示,两个关键词的频率一样,所以关键词将按添加的先后顺序进行替换,先替换木子屋,再替换木子,最终页面的代码为:
复制内容到剪贴板
程序代码

<a href='http://www.mzwu.com/' target='_blank'><u><a href='http://www.qq.com/' target='_blank'><u>木子</u></a>屋</u></a>
这代码显然有问题,如果想替换掉关键词木子,而不替换木子屋应怎么设置呢?只需设置木子的频率比木子屋的大即可,比如设置木子的频率为2[2],则生成的页面代码为:
复制内容到剪贴板
程序代码

<a href='http://www.qq.com/' target='_blank'><u>木子</u></a>屋
如果想替换掉关键词木子屋,而不替换木子又应怎么设置呢?抱歉,目前程序无法这样实现,因为所有关键词最终都会搜索一次,所以不管如何设置频率,短的关键词总能被替换,算是一种缺陷吧。
补充说明
[1].关键字替换开关需处于打开状态,生成文章页面时关键词才能被替换,开关位置:系统→系统设置→系统基本参数→核心设置→关键字替换(是/否)使用本功能会影响HTML生成速度。另外,DedeCMS还很人性化的增加了一个参数,它可以设置同一篇文章中同一个关键词替换的次数,参数位置:系统→系统设置→系统基本参数→其它选项→文档内容同一关键词替换次数(0为全部替换),这样的好处是能防止文章中站内锚文本出现次数过多。
[2].DedeCMS V5.7 SP1有个bug,关键词添加成功后,可以修改链接网址、禁用和删除关键词,但就是不能修改关键词频率,bug修正方法:
①.打开dede\templets\article_keywords_main.htm,找到如下代码:
复制内容到剪贴板
程序代码

<td>
<input type='text' size='5' class='nnpp' value='{dede:field.rank/}' name='rank_{dede:field.aid/}' />
</td>
<input type='text' size='5' class='nnpp' value='{dede:field.rank/}' name='rank_{dede:field.aid/}' />
</td>
修改如下:(红色新增)
复制内容到剪贴板
程序代码

<td>
<input type='hidden' value='{dede:field.rank/}' name='rankold_{dede:field.aid/}' />
<input type='text' size='5' class='nnpp' value='{dede:field.rank/}' name='rank_{dede:field.aid/}' />
</td>
<input type='hidden' value='{dede:field.rank/}' name='rankold_{dede:field.aid/}' />
<input type='text' size='5' class='nnpp' value='{dede:field.rank/}' name='rank_{dede:field.aid/}' />
</td>
②.打开dede/article_keywords_main.php,找到如下代码:
复制内容到剪贴板
程序代码

//更新链接网址
if($rpurl!=$rpurlold)
{
$query1 = "Update `#@__keywords` SET rpurl='$rpurl' Where aid='$aid' ";
$dsql->ExecuteNoneQuery($query1);
}
if($rpurl!=$rpurlold)
{
$query1 = "Update `#@__keywords` SET rpurl='$rpurl' Where aid='$aid' ";
$dsql->ExecuteNoneQuery($query1);
}
紧接其后加入下边代码:
复制内容到剪贴板
程序代码

//更新频率
$rank = ${'rank_'.$aid};
$rankold = ${'rankold_'.$aid};
if($rank!=$rankold)
{
$query1 = "Update `#@__keywords` SET rank='$rank' Where aid='$aid' ";
$dsql->ExecuteNoneQuery($query1);
}
$rank = ${'rank_'.$aid};
$rankold = ${'rankold_'.$aid};
if($rank!=$rankold)
{
$query1 = "Update `#@__keywords` SET rank='$rank' Where aid='$aid' ";
$dsql->ExecuteNoneQuery($query1);
}
保存后就可以在后台修改关键词频率了

评论: 0 | 引用: 0 | 查看次数: 5000
发表评论
请登录后再发表评论!