广告位

您现在的位置是:织梦 > 织梦教程

织梦自动关联关键词重复嵌套问题处理

2021-02-27 17:47织梦教程 人已围观

简介织梦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:修改系统文件之前最好对要修改的文件做一下备份,以防出错(可直接搜索注释).

Tags: 关键词  内链 

广告位
    广告位
    广告位

站点信息

  • 文章统计18篇文章
  • 标签管理标签云
  • 接业务:仿站、建站、小程序、seo优化