帝国cms自动评论插件 帝国cms关键词长短优先级排序先替换较长的词解决方法

帝国CMS教程

帝国cms内容关键字替换对于绝大多数没有php相关经验的站长朋友就是一个大坑,为什么这么说呢?

主要原因有两点:

1、文章内链关键字被拆分

具体实例和解决办法看文章:帝国cms文章内链关键字被拆分的解决方案

2、内链关键字谁短谁先出现,就先替换谁的原则

比如网站关键字有:小编、个人博客、小编个人博客

文章首段:小编个人博客是一个专注分享网站设计,帝国cms模板二次开发的个人博客网站

看到这里,我相信绝大多数网站都会想以:”小编个人博客“作为这篇文章的内链锚文本关键字,但是帝国cms程序优先级以“小编”作为内链锚文本展示

那么,我们如何根据关键词长短优先级排序,也就是说,以小编个人博客、个人博客、小编这样的顺序进行排序,这里需要修改functions.php中的参数

3、内链关键字长度优先级的解决办法

找到路径:e/class/functions.php,搜索//替换关键字,找到

  • $where=" where cid='".$class_r[$classid]['keycid']."'";

替换

  • $where=" where cid='".$class_r[$classid]['keycid']."' ORDER BY L DESC";

查找

  • $sql=$empire->query("select keyname,keyurl from {$dbtbpre}enewskey".$where);

替换

  • $sql=$empire->query("select keyname,keyurl,CHAR_LENGTH(keyname) AS L from {$dbtbpre}enewskey".$where);

解释说明一下:ORDER BY L DESC,根据关键字长短降序,而CHAR_LENGTH(keyname),则是mysql获取关键字字符串长度函数(CHAR_LENGTH)