dedecms文档长尾关键词,遵照频率先替换长尾关键词再交替主关键词

题材:在动dedecms的文档关键词替换效用时,会导致交叉替换

如:

长尾着重词1:男人喝金丝皇菊有啊补? 

长尾重要词2:喝金丝皇菊有啊利益?

主关键词3:金丝皇菊

应用系统默认的功力时,在轮换主关键词的时节,会以方面已经替换好的长尾关键词受之“金丝皇菊”也交替掉,从而破坏了本来的长尾关键词锚文本。

正文教我们:dedecms文档关键词维护的根本词现身多次,只于起的第一只加链接的

末段效果好拘留下八岩茶业官网的内页著作:

金丝皇菊_福鼎黑茶_普洱茶http://www.bayantea.cn

 

解决思路:

1.先就要替换的要词替换成类似:

关键词1:'#####0#####'

关键词2:'#####2#####'

关键词3:'#####3#####'

再进行以上替换操作的时候,我们需要保存关键词所对应的锚文本,如:

'#####0#####' --> 关键词1的锚文本

'#####1#####' --> 关键词2的锚文本

'#####2#####' --> 关键词3的锚文本
等全部替换完毕后,我们最后再恢复回来
这里,我们主要修改:include/arc.archives.class.php 文件
修改部分如下:

 

//高亮专用, 替换多次是可能不能达到最多次
function _highlight($string, $words, $result, $pre) {
    global $cfg_replace_num;
    //     if (version_compare(PHP_VERSION, '5.5.0', '>='))
    //     {
    //         $string = $string[0];
    //         $pre = $pre[0];
    //     }

    //修改 Start
    $replaced_array = array();
    $replaced_tiems = 0;
    //修改 End

    $string = str_replace('\"', '"', $string);
    if ($cfg_replace_num > 0) {
        foreach ($words as $key => $word) {
            if ($GLOBALS['replaced'][$word] == 1) {
                continue;
            }
            //修改 Start
            $replace_string = '#####' . $replaced_tiems . '#####';
            $replaced_array[$replace_string] = $result[$key];
            $string = preg_replace("#" . preg_quote($word) . "#", $replace_string, $string, $cfg_replace_num);
            $replaced_tiems+= 1;
            //修改  End
            //             $string = preg_replace("#".preg_quote($word)."#", $result[$key], $string, $cfg_replace_num);
            if (strpos($string, $word) !== FALSE) {
                $GLOBALS['replaced'][$word] = 1;
            }
        }
        //修改 Start
        foreach ($replaced_array as $k => $v) {
            $string = str_ireplace($k, $v, $string);
        }
        //修改  End

    } else {
        $string = str_replace($words, $result, $string);
    }
    return $pre . $string;
}

在意:这里大家用在后台修改文档关键词之效用,默认是 频率高之预先替换,频率低的晚替换

举例来说:当随笔中出现了一百差尊历时,按法定的法则,他会合让一百独台历都添加链接的。dedecms登时如何做?

版权

原创作品,转载请有名出处:dedecms文档长尾关键词,依据频率先替换长尾关键词再交替主关键词https://www.cnblogs.com/hongfei/p/9507711.html)

化解方法(记得先备份)

无异于、打开目录include中的arc.archivew.class.PHP

找到function
ReplaceKeyword($kw,$body)代码,在无比下。然后直接到绝下面。替换以下的代码

function ReplaceKeyword($kw,$body)
{
global $cfg_cmspath;
$maxkey = 5;
$kws = explode(“,”,trim($kw)); //以分好啊间隔符
$i=0;
$karr = $kaarr = $GLOBALS[‘replaced’] = array();

//暂时屏蔽超链接
$body = preg_replace(“/()(.*)(<)(\/a>)/isU”,
‘\\1-]-\\4-[-\\6’, $body);

global $dsql;
$query=”SELECT * FROM zmb_keywords WHERE rpurl<>” and sta=1
ORDER BY length(keyword)desc”;
$dsql->SetQuery($query);
$dsql->Execute();
while($row = $dsql->GetArray())
{
$key = trim($row[‘keyword’]);
$key_url=trim($row[‘rpurl’]);
$karr[] = $key;
$kaarr[] = “$key“;
}
foreach ($karr as $key => $word)
{

$body =
preg_replace(“/(^|>)([^<]+)(?=<|$)/sUe”,”_highlight(‘\\2’,
\$karr[$key], \$kaarr[$key], ‘\\1’)”, $body);
//echo $body.”
“;

//复苏超链接
$body = preg_replace(“/()/isU”,’\\1>\\3<\\4′, $body);
//暂时屏蔽超链接
$body = preg_replace(“/()(.*)(<)(\/a>)/isU”,
‘\\1-]-\\4-[-\\6’, $body);

}

//苏醒超链接
$body = preg_replace(“/()/isU”,’\\1>\\3<\\4′, $body);
return $body;
}

}//End Archives

//高亮专用, 替换多次凡可能无克落得极致累
function _highlight($string, $words, $result, $pre)
{
global $cfg_replace_num;
$string = str_replace(‘\”‘, ‘”‘, $string);

if($GLOBALS[‘replaced’][$words] == 1)
{
return $pre.$string;
}

if($cfg_replace_num > 0)
{
$string = preg_replace(“/”.preg_quote($words).”/”, $result, $string,
$cfg_replace_num);
if(strpos($string, $words) !== false)
{
$GLOBALS[‘replaced’][$words] = 1;
//echo $words;
}

}
else
{
$string = str_replace($words, $result, $string);
}
return $pre.$string;
}

次、进入DEDE后台,系统-系统基本参数-其他采用之末梢一行。文档内容一致关键词替换次数(0为周交替),修改也1。

其三、进入文档关键词维护,维护得在链接的紧要词与链接即可。重新转,效果尽管出来了。

 

 

连带链接:http://www.zhimengba.com/jsjc/79.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图