在使用Dedecms时,拼音网址长度限制与下划线替换为上划线的问题是许多用户关注的重点。本文将详细介绍如何解决这些问题,并提供具体的代码修改方法。

首先,我们需要了解如何调整Dedecms中拼音网址的长度限制以及如何将下划线(_)替换为连字符(-)。以下是具体步骤:

一、网址长度及_替换成-的方法

打开文件 include/inc/inc_fun_funAdmin.php。
找到以下代码片段:


for($i=0;$i<$slen;$i++){
    if(ord($str[$i])>0x80)
    {
        $c = $str[$i].$str[$i+1];
        $i++;
        if(isset($pinyins[$c])){
            if($ishead==0) $restr .= $pinyins[$c];
            else $restr .= $pinyins[$c][0];
        }else $restr .= "_";
    }else if( eregi("[a-z0-9]",$str[$i]) ){
        $restr .= $str[$i]; 
    }else{ 
        $restr .= "_"; 
    }
}
    

接下来,我们将代码中的 $restr .= "_"; 替换为 $restr .= "-";
同时,将 for($i=0;$i<$slen;$i++) 中的 $slen 改为你希望设置的最大长度数字。这样可以实现对标题超过指定长度的部分进行截断,从而按照你的需求显示网址。

二、网址去掉id的方法

在include文件夹下找到 channelunit.func.php 文件。
定位到如下代码:


if(ereg('\\{p\\}',$articleRule))
{
    $articleRule = str_replace('{pinyin}',GetPinyin($title).'_'.$aid,$articleRule);
    $articleRule = str_replace('{py}',GetPinyin($title,1).'_'.$aid,$articleRule);
}
$articleUrl = '/'.ereg_replace('^/','',$articleRule);
return $articleUrl;
}
}
    

注意红色部分:
将其替换为:$articleRule = str_replace('{pinyin}',GetPinyin($title),$articleRule);
这样就可以成功去掉网址中的ID部分。

通过以上两步操作,您可以轻松解决Dedecms拼音网址长度限制问题,并将下划线替换为连字符,同时去掉网址中的ID部分,优化网站结构,提升SEO效果。

希望这些技巧能帮助您更好地管理和优化您的Dedecms网站!


注意:在实际操作前,请确保备份好相关文件以防万一。