前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DedeCMS织梦文档关键词维护中设置自动关键词重复嵌套出错的修改方法

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

作者头像
米米素材网
发布2023-08-03 20:20:52
1960
发布2023-08-03 20:20:52
举报
文章被收录于专栏:站长技术站长技术

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

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

  1. //高亮专用, 替换多次是可能不能达到最多次
  2. function _highlight($string, $words, $result, $pre)
  3. {
  4. global $cfg_replace_num;
  5. $string = str_replace('"', '"', $string);

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

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

最后变成下面的样子:

  1. //高亮专用, 替换多次是可能不能达到最多次
  2. function _highlight($string, $words, $result, $pre)
  3. {
  4. global $cfg_replace_num;
  5. $string = str_replace('"', '"', $string);
  6. uasort($words,create_function('$a, $b','return strlen($a)>strlen($b);'));

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

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

  1. //高亮专用, 替换多次是可能不能达到最多次
  2. function _highlight($string, $words, $result, $pre)
  3. {
  4. global $cfg_replace_num;
  5. if (version_compare(PHP_VERSION, '5.5.0', '>='))
  6. {
  7. $string = $string[0];
  8. $pre = $pre[0];
  9. }
  10. $string = str_replace('"', '"', $string);

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

  1. //高亮专用, 替换多次是可能不能达到最多次
  2. function _highlight($string, $words, $result, $pre)
  3. {
  4. global $cfg_replace_num;
  5. if (version_compare(PHP_VERSION, '5.5.0', '>='))
  6. {
  7. $string = $string[0];
  8. $pre = $pre[0];
  9. }
  10. $string = str_replace('"', '"', $string);
  11. uasort($words,create_function('$a, $b','return strlen($a)>strlen($b);'));

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

本文系转载,前往查看

如有侵权,请联系?cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系?cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com