DedeCMS织梦文档关键词维护中设置自动关键词重复嵌套出错的修改方法

简介: 织梦 DedeCMS 后台的关键词维护默认的情况是字数少的词优先于字数多的词,比如我们有两个这样的词:锚文本、定向锚文本,第二个词包含了第一个词,在文章中如果出现“定向锚文本”这个词,默认情况下只会给锚文本两个字添加关键词超链接,而不是整个词,那么我们怎么样才能实现字数多的词优先于字数少的词呢?

织梦 DedeCMS 后台的关键词维护默认的情况是字数少的词优先于字数多的词,比如我们有两个这样的词:锚文本定向锚文本,第二个词包含了第一个词,在文章中如果出现“定向锚文本”这个词,默认情况下只会给锚文本两个字添加关键词超链接,而不是整个词,那么我们怎么样才能实现字数多的词优先于字数少的词呢?下面就告诉大家具体的解决方法:

我们找到并打开/include/arc.archives.class.php 文件,在里面找到如下代码:

//高亮专用, 替换多次是可能不能达到最多次

function _highlight($string,$words,$result,$pre)

{

global$cfg_replace_num;

$string=str_replace('"','"',$string);

找到后在其下面添加下面一行代码:

uasort($words,create_function('$a, $b','return strlen($a)>strlen($b);'));

最后变成下面的样子:

//高亮专用, 替换多次是可能不能达到最多次

function _highlight($string,$words,$result,$pre)

{

global$cfg_replace_num;

$string=str_replace('"','"',$string);

uasort($words,create_function('$a, $b','return strlen($a)>strlen($b);'));

替换完成后保存即可,然后生成一下文章内容试试。如果你用的是最新版的 dedecms,那么可能找不到上面的代码。

最新版织梦 dedecms 查找以下代码:

//高亮专用, 替换多次是可能不能达到最多次

function _highlight($string,$words,$result,$pre)

{

global$cfg_replace_num;

if(version_compare(PHP_VERSION,'5.5.0','>='))

{

$string=$string[0];

$pre=$pre[0];

}

$string=str_replace('"','"',$string);

在这段代码的后面加上前面的语句,变成:

//高亮专用, 替换多次是可能不能达到最多次

function _highlight($string,$words,$result,$pre)

{

global$cfg_replace_num;

if(version_compare(PHP_VERSION,'5.5.0','>='))

{

$string=$string[0];

$pre=$pre[0];

}

$string=str_replace('"','"',$string);

uasort($words,create_function('$a, $b','return strlen($a)>strlen($b);'));

这样修改的原理是优先给较短的关键词添加链接,而后再给较长的关键词添加链接,从而达到防止嵌套的问题。

PS:修改系统文件之前最好对要修改的文件做一下备份,以防出错.参考链接:https://www.mimisucai.com/teach/202344568.html

相关文章
|
2月前
|
搜索推荐
一文教会你:如何在搜索过程中过滤CSDN的相关文章,一次设置永久过滤
这篇文章教你如何在浏览器搜索设置中添加自定义搜索引擎,通过在搜索查询中加入"-csdn"参数来过滤掉CSDN的搜索结果,从而提高搜索结果的质量。
一文教会你:如何在搜索过程中过滤CSDN的相关文章,一次设置永久过滤
|
2月前
|
搜索推荐 前端开发 程序员
如何在浏览器中搜索内容自动过滤CSDN的相关文章,一次设置永久过滤
这篇文章介绍了如何在浏览器中设置搜索时自动过滤掉CSDN的相关文章,提供了具体的浏览器设置步骤和推荐使用的搜索引擎。
如何在浏览器中搜索内容自动过滤CSDN的相关文章,一次设置永久过滤
|
5月前
百度搜索:蓝易云【ModStart安装环境检测提示缺少 xxx 扩展解决方法。】
如果以上方法仍未解决问题,建议参考ModStart的官方文档、社区论坛或联系技术支持,寻求进一步的帮助和指导。不同的应用和环境可能有不同的解决方法,确保按照官方指南和文档的建议进行操作。
41 0
|
PHP
漏刻有时采用php常用get提交搜索关键词的注意事项
漏刻有时采用php常用get提交搜索关键词的注意事项
54 0
|
前端开发
前端知识学习案例5vs code-搜索和替换全局内容
前端知识学习案例5vs code-搜索和替换全局内容
80 0
前端知识学习案例5vs code-搜索和替换全局内容
|
数据库
通过互联网搜索接口更新拼写语法库的设计
通过互联网搜索接口更新拼写语法库的设计
67 0
|
前端开发 搜索推荐 JavaScript
如何正确使用搜索引擎找到想要的内容
主要介绍Google和Baidu这两个搜索引擎的使用技巧
如何正确使用搜索引擎找到想要的内容
|
.NET 数据库 安全
ASP.NET | 从零到一实战分析对后台数据库增加数据、模糊查找、精确查找并展示
新建: 新建数据库mydb.mdf、添加表: 更新数据库; 右击数据库,选择属性,复制连接字符串;(这里之前做过了,就简单点过不做细节。
1325 0
|
Windows
怎么去掉文章或产品介绍中的垃圾代码?怎么过滤这些垃圾代码?
一般从网页或从WORD中复制粘贴时,会带来一些垃圾代码,有可能会导致显示异常,例如如下样例中的灰色方框,无法直接删掉,怎么办? 小技巧:如点右键粘贴不能用,可以用粘贴快捷键:Ctrl+V 1、删掉方法如下:如下图,先点HTML图标,然后 就可以看到下面的代码了,直接删掉就行了。
1252 0
用IHTMLDocument2接口获取页面上想要的数据,代替正则表达式
原文:用IHTMLDocument2接口获取页面上想要的数据,代替正则表达式 原文发布时间为:2010-07-01 —— 来源于本人的百度文章 [由搬家工具导入]1. 用 IHTMLDocument2::all 获得所有元素; 2. 用 IHTMLElementCollection::tags 获得标签为 span 的元素; 3. 用 IHTMLElement::className 获得 class 名为 EX 的元素; 4. 用 IHTMLElement::innerText 获得文本。
1087 0