« member/archives_add_action.php文件解读。关于个人站长建设地方网站的思考 »

DEDE文章关键字链接替换次数控制

hudie  September 24 2008 Tags: SEO  郑州SEO  DEDE  CMS  

 文章关键字链接替换次数控制【附代码】

这个看起来好像很有用哦。
DEDE自带关键字替换链接功能,默认是把文章里关键字每出现一次就添加一次链接,这个在关键字出现比较频密的文章里,显得有些乱,因此希望能控制这个替换的次数。
以下方法在DEDE5.1里调试通过,可以按以下方法自行修改,但要确保修改前把涉及文件先行备份。
打开 include/inc_funtions.php
原代码:
Copy code
function highlight($string, $words, $hrefs='',$pretext='', $step='')
{
    //后两个变量为系统继承变量,不可指定
    if($step != 'me'){
        return preg_replace('/(^|>)([^<]+)(?=<|$)/sUe', "highlight('\\2',\$words, \$hrefs, '\\1', 'me')", $string);
    }    
    if(is_array($words)){
            $string = str_replace('\"', '"', $string);
            foreach($words as $k => $word){
                if(empty($hrefs[$k])){
                    $string = preg_replace('/(^|>)([^<]+)(?=<|$)/sUe', "highlight('\\2',\$word, '', '\\1', 'me')", $string);
                }else{
                    $string = preg_replace('/(^|>)([^<]+)(?=<|$)/sUe', "highlight('\\2',\$word, \$hrefs[\$k], '\\1', 'me')", $string);
                }
            }
        return $pretext.$string;
    }else{
        if($hrefs == ''){
            $string = str_replace($words,'<strong><font color="#ff0000">'.$words.'</font></strong>',$string);
        }else{
            if(strpos($string, $words) !== false){
                $string = str_replace($words, '<a href="'.$hrefs.'" _fcksavedurl=""'.$hrefs.'"" style="color:#ff0000;font-weight:bold;">'.$words.'</a>', $string);
            }
        }
        return $pretext.$string;
    }    
}

修改后:
Quote:

$highlight_array=array();
$replace_times=2; //替换次数

function highlight($string, $words, $hrefs='',$pretext='', $step='')
{  
    global $highlight_array,$replace_times;    
    //后两个变量为系统继承变量,不可指定
    if($step != 'me'){
        return preg_replace('/(^|>)([^<]+)(?=<|$)/sUe', "highlight('\\2',\$words, \$hrefs, '\\1', 'me')", $string);
    }
    
    if(is_array($words)){
            $string = str_replace('\"', '"', $string);      
            foreach($words as $k => $word){                
                if(empty($hrefs[$k])){
                    $string = preg_replace('/(^|>)([^<]+)(?=<|$)/sUe', "highlight('\\2',\$word, '', '\\1', 'me')", $string);
                }else{                    
                                       $string = preg_replace('/(^|>)([^<]+)(?=<|$)/sUe', "highlight('\\2',\$word, \$hrefs[\$k], '\\1', 'me')", $string);
                    //}
                }                
            }
        return $pretext.$string;
    }else{
        if($hrefs == ''){
            $string = str_replace($words,'<strong><font color="#ff0000">'.$words.'</font></strong>',$string);
        }else{              
              
$keyword_pos=strpos($string, $words);            
              if( ($keyword_pos!== false)){
                    if ((empty($highlight_array[$words]))||(!isset($highlight_array[$words]))) {
                             $highlight_array[$words]=1;                            
                    }                    
                    if ($highlight_array[$words]<=$replace_times){
                        $highlight_array[$words]++;
                        $string = str_replace($words, '<a href="'.$hrefs.'" style="color:#ff0000;font-weight:bold;">'.$words.'</a>', $string);
                    }                   
              }
  
        }
        return $pretext.$string;
    }    
}



附加说明,关键字链接替换功能需要设置三个地方:
1、 在后台的“系统管理”的“过滤设置 ”里,设置“关键字替换(是/否)”为“是”;
2 、在后台的“内容维护”的“搜索关键词管理”里,点“文档关键字维护”,然后添加或修改关键字和链接地址的对应关系
3、 添加和修改文章时,在“其它参数”里,填写“关键字”项,多个关键字之间用空格分隔;
这些都设置完毕之后,文章在生成的时候,如果就会把把它正文里的设置的带有链接地址的关键字,自动添加上链接地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

订阅本站

    博主:蝴蝶seo Nmae:蝴蝶
    Tel:13939029674
    QQ:245922667
    E-mail:zseo@qq.com

网站分类

文章归档

最新发表

最新评论及回复

友情链接