dedecms织梦自动内链的方法,织梦自动内链不生效的解决办法

内链在seo网站优化中,是很重要的,只要做seo,文章中都要有内链,但是如果每篇文章都手动来设置的话,那就很费力了,对于懒人来说,想要优化,又不想那么累的话,其实织梦自身就带有自动内链的功能,网上也有很多教程,试了很多都不成功,不过皇天不负有心人,经过一翻折腾终于找到了解决办法。

织梦dedecms自带的自动內链功能设置方法 如下

1、“系统”--“系统基本参数”--“核心设置”--“关键字替换(是/否)”把他设置为“是”

2、“系统”--“系统基本参数”--“其他选项”--“自动提取关键字”把他设置为“否”

3、“系统”--“系统基本参数”--“其他选项”--“关键词替换次数(0为全部替换)”把他设置为“1”

4、“核心”--“批量维护”--“文档关键词维护”

至此dedecms织梦自动内链就设置好啦,但是就这样的话是不成功的,还需要做以下修改

打开/include/arc.archives.class.php 找到:  version_compare(PHP_VERSION, '5.5.0'    用文本编辑器批量替换成:  version_compare(PHP_VERSION, '7.5.0'

这样dedecms织梦自动内链就彻底设置好了,本人亲自测试成功!

注意: 修改频率为 1     频率:就是在你的文章添加的链接个数。(比如一篇文章中包含了3个一样的内链关键字,只在其中一个关键字上添加链接)

dedecms织梦自动内链的方法

1、织梦dedecms自动内链重复替换链接造成内链嵌套的问题,

修改代码方法:

找到include/arc.archives.class.php这个文件,在1246行代码,如下:

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

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);'));

2、织梦dedecms自动内链关键字优先级问题

织梦DedeCMS自动内链会优先使用短的关键词,比如有“长词”、“我是大长词”、“小长词”,同时在一篇文章中出现,程序会使用顺序是长词 - 小长词 - 我是大长词。

关键词内链开启步骤

后台-系统-核心设置-关键字替换 【是】

后台-系统-其他选项-关键词替换次数 【1】

解决关键词长短优先级问题的方法

打开 /include/arc.archives.class.php 找到

$query = "SELECT * FROM #@__keywords WHERE rpurl<>'' ORDER BY rank DESC";

改成

$query = "SELECT char_length(keyword) AS num,aid,keyword,rpurl,rank FROM #@__keywords WHERE rpurl<>'' ORDER BY num DESC";

继续找到

"#".preg_quote($word)."#"

改成

"#(?<!>)(?!<)".preg_quote($word)."#"

最终效果

我是大长词 》 小长词 》 长词

你还可能还需要 织梦自动内链一个关键字对应多个链接的解决办法

猜你喜欢

转载自blog.csdn.net/qq_39339179/article/details/110085800